<?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>148415</bug_id>
          
          <creation_ts>2015-08-24 20:40:38 -0700</creation_ts>
          <short_desc>NodeFilter should be a callback interface</short_desc>
          <delta_ts>2016-08-22 15:19:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=161030</see_also>
          <bug_file_loc>https://dom.spec.whatwg.org/#interface-nodefilter</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>148418</dependson>
    
    <dependson>148434</dependson>
    
    <dependson>148449</dependson>
    
    <dependson>148531</dependson>
    
    <dependson>148591</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1120517</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-24 20:40:38 -0700</bug_when>
    <thetext>NodeFilter should be a callback interface. Currently, it is a regular interface:
https://dom.spec.whatwg.org/#interface-nodefilter

One major impact if that TreeWalker.filter / NodeIterator is a JSNodeFilter wrapper instead of the JS function / object that was passed by the JavaScript.

Our bindings generator is unfortunately not currently able to handle such complex callback interface at the moment.

W3C Test Suites:
- http://w3c-test.org/dom/traversal/NodeIterator.html
- http://w3c-test.org/dom/traversal/TreeWalker.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122097</commentid>
    <comment_count>1</comment_count>
      <attachid>260261</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 18:07:13 -0700</bug_when>
    <thetext>Created attachment 260261
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122098</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-30 18:09:47 -0700</bug_when>
    <thetext>Attachment 260261 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:57:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:58:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:59:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:60:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:61:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:62:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:63:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:64:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:65:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:66:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:67:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:68:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:69:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 16 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122099</commentid>
    <comment_count>3</comment_count>
      <attachid>260262</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 18:16:43 -0700</bug_when>
    <thetext>Created attachment 260262
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122100</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-30 18:18:47 -0700</bug_when>
    <thetext>Attachment 260262 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:57:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:58:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:59:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:60:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:61:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:62:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:63:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:64:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:65:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:66:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:67:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:68:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:69:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 16 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122101</commentid>
    <comment_count>5</comment_count>
      <attachid>260263</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 18:33:29 -0700</bug_when>
    <thetext>Created attachment 260263
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122102</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-30 18:36:02 -0700</bug_when>
    <thetext>Attachment 260263 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:57:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:58:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:59:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:60:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:61:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:62:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:63:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:64:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:65:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:66:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:67:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:68:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:69:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 16 in 36 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122104</commentid>
    <comment_count>7</comment_count>
      <attachid>260264</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 19:07:37 -0700</bug_when>
    <thetext>Created attachment 260264
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122105</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-30 19:09:49 -0700</bug_when>
    <thetext>Attachment 260264 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:57:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:58:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:59:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:60:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:61:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:62:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:63:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:64:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:65:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:66:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:67:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:68:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:69:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 16 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122108</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 19:26:24 -0700</bug_when>
    <thetext>Carlos, I did as much as I could to fix the GTK build. However, I now get the following error:
../../Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp: In member function &apos;bool WebKitDOMNodeTest::testDOMCache(WebKitWebPage*)&apos;:
../../Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:225:251: error: &apos;webkit_dom_document_create_node_iterator&apos; was not declared in this scope
         GRefPtr&lt;WebKitDOMNodeIterator&gt; iter = adoptGRef(webkit_dom_document_create_node_iterator(document, WEBKIT_DOM_NODE(div), WEBKIT_DOM_NODE_FILTER_SHOW_ALL, nullptr, FALSE, nullptr));

I am not quite sure how to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122111</commentid>
    <comment_count>10</comment_count>
      <attachid>260267</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 19:43:11 -0700</bug_when>
    <thetext>Created attachment 260267
WIP Patch

Another attempt to fix the GTK build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122112</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-30 19:44:50 -0700</bug_when>
    <thetext>Attachment 260267 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:57:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:58:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:59:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:60:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:61:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:62:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:63:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:64:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:65:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:66:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:67:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:68:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:69:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 16 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122115</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 20:05:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Carlos, I did as much as I could to fix the GTK build. However, I now get
&gt; the following error:
&gt; ../../Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp: In member
&gt; function &apos;bool WebKitDOMNodeTest::testDOMCache(WebKitWebPage*)&apos;:
&gt; ../../Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:225:251: error:
&gt; &apos;webkit_dom_document_create_node_iterator&apos; was not declared in this scope
&gt;          GRefPtr&lt;WebKitDOMNodeIterator&gt; iter =
&gt; adoptGRef(webkit_dom_document_create_node_iterator(document,
&gt; WEBKIT_DOM_NODE(div), WEBKIT_DOM_NODE_FILTER_SHOW_ALL, nullptr, FALSE,
&gt; nullptr));
&gt; 
&gt; I am not quite sure how to fix it.

Actually, it looks like I managed to do it but please double-check the change to CodeGeneratorGObject.pm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122119</commentid>
    <comment_count>13</comment_count>
      <attachid>260270</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 20:28:40 -0700</bug_when>
    <thetext>Created attachment 260270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122120</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-30 20:30:07 -0700</bug_when>
    <thetext>Attachment 260270 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:57:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:58:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:59:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:60:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:61:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:62:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:63:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:64:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:65:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:66:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:67:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:68:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:69:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 16 in 41 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122121</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-30 20:31:43 -0700</bug_when>
    <thetext>The patch seems big mostly due to tests (w3c / bindings) rebaselining and large changelogs. The actual change is not *that* big.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122138</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-08-30 23:32:47 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #9)
&gt; &gt; Carlos, I did as much as I could to fix the GTK build. However, I now get
&gt; &gt; the following error:
&gt; &gt; ../../Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp: In member
&gt; &gt; function &apos;bool WebKitDOMNodeTest::testDOMCache(WebKitWebPage*)&apos;:
&gt; &gt; ../../Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp:225:251: error:
&gt; &gt; &apos;webkit_dom_document_create_node_iterator&apos; was not declared in this scope
&gt; &gt;          GRefPtr&lt;WebKitDOMNodeIterator&gt; iter =
&gt; &gt; adoptGRef(webkit_dom_document_create_node_iterator(document,
&gt; &gt; WEBKIT_DOM_NODE(div), WEBKIT_DOM_NODE_FILTER_SHOW_ALL, nullptr, FALSE,
&gt; &gt; nullptr));
&gt; &gt; 
&gt; &gt; I am not quite sure how to fix it.
&gt; 
&gt; Actually, it looks like I managed to do it but please double-check the
&gt; change to CodeGeneratorGObject.pm.

Thanks Chris, I really appreciate it. Looks good to me, fortunately NodeIterator and TreeWalker interfaces in GObject DOM bindings are covered by our unit tests, so if it builds I&apos;m pretty sure there are no API breaks and it will work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122301</commentid>
    <comment_count>17</comment_count>
      <attachid>260319</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-31 14:38:41 -0700</bug_when>
    <thetext>Created attachment 260319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122309</commentid>
    <comment_count>18</comment_count>
      <attachid>260321</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-31 15:06:07 -0700</bug_when>
    <thetext>Created attachment 260321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122310</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-31 15:07:35 -0700</bug_when>
    <thetext>Attachment 260321 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 3 in 41 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122381</commentid>
    <comment_count>20</comment_count>
      <attachid>260321</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-31 17:21:06 -0700</bug_when>
    <thetext>Comment on attachment 260321
Patch

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

JSCallbackData is a strong reference to a global object, which will create a retain cycle if the node iterator or tree walker is referenced by the global object.

I think we should fix this by having a kind of JSCallbackData that holds weak references, and is marked by the node iterator or tree walker wrapper.

&gt; Source/WebCore/bindings/js/JSNodeFilterCustom.cpp:2
&gt;  /*
&gt; - * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
&gt; + * Copyright (C) 2015 Apple Inc. All rights reserved.

Did you remove these old dates on purpose?

&gt; Source/WebCore/bindings/js/JSNodeFilterCustom.cpp:38
&gt; +// callback function calls if they return something else than a

else than =&gt; other than</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122438</commentid>
    <comment_count>21</comment_count>
      <attachid>260321</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-31 18:41:48 -0700</bug_when>
    <thetext>Comment on attachment 260321
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSNodeFilterCustom.cpp:2
&gt;&gt; + * Copyright (C) 2015 Apple Inc. All rights reserved.
&gt; 
&gt; Did you remove these old dates on purpose?

Yes, even though the file name is the same, all the previous code is gone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122459</commentid>
    <comment_count>22</comment_count>
      <attachid>260348</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-31 21:21:29 -0700</bug_when>
    <thetext>Created attachment 260348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122461</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-31 21:23:58 -0700</bug_when>
    <thetext>Attachment 260348 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 3 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122464</commentid>
    <comment_count>24</comment_count>
      <attachid>260348</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-31 21:32:35 -0700</bug_when>
    <thetext>Comment on attachment 260348
Patch

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

Geoff, is this what you had in mind? I don&apos;t know much about JS lifetime management but I tried to match the previous implementation.

&gt; Source/WebCore/bindings/js/JSCallbackData.cpp:95
&gt; +    return visitor.containsOpaqueRoot(context);

This is our condition to keep it alive. (context will be a NodeFilter* in the case of NodeFilter).
The NodeFilter is added to the SlotVisitor&apos;s opaque roots via pre-exisinting JSTreeWalker::visitAdditionalChildren() in JSTreeWalkerCustom.cpp and JSNodeIterator::visitAdditionalChildren() in JSNodeIteratorCustom.cpp.

&gt; Source/WebCore/bindings/js/JSCallbackData.h:46
&gt;  class JSCallbackData {

JSCallbackData now has 2 subclasses:
- JSCallbackDataStrong which has a Strong pointer to the callback Object (used by all previous callbacks).
- JSCallbackDataWeak which has a Weak pointer to the callback Object (used by NodeFilter).

&gt; Source/WebCore/bindings/js/JSCallbackData.h:50
&gt; +protected:

Made the destructor protected as it is not virtual.

&gt; Source/WebCore/bindings/js/JSCallbackData.h:117
&gt; +    template &lt;typename CallbackDataType&gt;

Made this templated so we can call the subclass&apos;s destructor and avoid adding a vtable to JSCallbackData.

&gt; Source/WebCore/bindings/js/JSNodeFilterCondition.cpp:-81
&gt; -bool JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt;, void* context, SlotVisitor&amp; visitor)

This was moved to JSCallbackDataWeak.

&gt; Source/WebCore/bindings/js/JSNodeFilterCondition.h:-47
&gt; -        class WeakOwner : public JSC::WeakHandleOwner {

This was moved to JSCallbackDataWeak.

&gt; Source/WebCore/bindings/js/JSNodeFilterCustom.cpp:-33
&gt; -void JSNodeFilter::visitAdditionalChildren(JSC::SlotVisitor&amp; visitor)

JSNodeFilter is not longer a JS Wrapper so this is gone.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:198
&gt; +    return $callbackInterface-&gt;extendedAttributes-&gt;{&quot;IsWeakCallback&quot;} ? &quot;JSCallbackDataWeak&quot; : &quot;JSCallbackDataStrong&quot;;

In the generated bindings, we now use JSCallbackDataWeak / JSCallbackDataStrong as needed, based on the new &quot;IsWeakCallback&quot; IDL extended attribute (Couldn&apos;t think of a better name).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122627</commentid>
    <comment_count>25</comment_count>
      <attachid>260348</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-01 13:20:31 -0700</bug_when>
    <thetext>Comment on attachment 260348
Patch

r=me

Is the Windows EWs failure a problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122629</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-01 13:38:40 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Comment on attachment 260348 [details]
&gt; Patch
&gt; 
&gt; r=me
&gt; 
&gt; Is the Windows EWs failure a problem?

Yes, it seems caused by my patch. I will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122630</commentid>
    <comment_count>27</comment_count>
      <attachid>260379</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-01 13:43:30 -0700</bug_when>
    <thetext>Created attachment 260379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122631</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-01 13:45:37 -0700</bug_when>
    <thetext>Attachment 260379 did not pass style-queue:


ERROR: Source/WebCore/dom/NodeFilter.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:46:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/NodeFilter.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 3 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122655</commentid>
    <comment_count>29</comment_count>
      <attachid>260379</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-01 14:50:09 -0700</bug_when>
    <thetext>Comment on attachment 260379
Patch

Clearing flags on attachment: 260379

Committed r189230: &lt;http://trac.webkit.org/changeset/189230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122656</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-01 14:50:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122888</commentid>
    <comment_count>31</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-02 13:18:58 -0700</bug_when>
    <thetext>rdar://problem/22544293</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260261</attachid>
            <date>2015-08-30 18:07:13 -0700</date>
            <delta_ts>2015-08-30 18:16:43 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>NodeFilter_callback_interface_wip.patch</filename>
            <type>text/plain</type>
            <size>520397</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0YW50cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CmluZGV4IDQ3ZmM1
YjIuLmJmZDY1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0YW50cy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVk
LnR4dApAQCAtMjQsMjIgKzI0LDYgQEAgUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19JTkhFUklU
IHNob3VsZCBiZSAwIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfUFJJTUlUSVZF
X1ZBTFVFIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfVkFM
VUVfTElTVCBzaG91bGQgYmUgMiBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0NV
U1RPTSBzaG91bGQgYmUgMyBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQg
c2hvdWxkIGJlIDEgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5GSUxURVJfUkVKRUNUIHNob3Vs
ZCBiZSAyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX1NLSVAgc2hvdWxkIGJlIDMg
YW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0FMTCBzaG91bGQgYmUgNDI5NDk2NzI5NSBh
bmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfRUxFTUVOVCBzaG91bGQgYmUgMSBhbmQgaXMu
Ci1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFIHNob3VsZCBiZSAyIGFuZCBpcy4KLVBB
U1M6IG5vZGVGaWx0ZXIuU0hPV19URVhUIHNob3VsZCBiZSA0IGFuZCBpcy4KLVBBU1M6IG5vZGVG
aWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OIHNob3VsZCBiZSA4IGFuZCBpcy4KLVBBU1M6IG5vZGVG
aWx0ZXIuU0hPV19FTlRJVFlfUkVGRVJFTkNFIHNob3VsZCBiZSAxNiBhbmQgaXMuCi1QQVNTOiBu
b2RlRmlsdGVyLlNIT1dfRU5USVRZIHNob3VsZCBiZSAzMiBhbmQgaXMuCi1QQVNTOiBub2RlRmls
dGVyLlNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiBzaG91bGQgYmUgNjQgYW5kIGlzLgotUEFT
Uzogbm9kZUZpbHRlci5TSE9XX0NPTU1FTlQgc2hvdWxkIGJlIDEyOCBhbmQgaXMuCi1QQVNTOiBu
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQgc2hvdWxkIGJlIDI1NiBhbmQgaXMuCi1QQVNTOiBub2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlRfVFlQRSBzaG91bGQgYmUgNTEyIGFuZCBpcy4KLVBBU1M6IG5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9GUkFHTUVOVCBzaG91bGQgYmUgMTAyNCBhbmQgaXMuCi1Q
QVNTOiBub2RlRmlsdGVyLlNIT1dfTk9UQVRJT04gc2hvdWxkIGJlIDIwNDggYW5kIGlzLgogUEFT
Uzogd2luZG93Lk5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91bGQgYmUgMSBhbmQgaXMuCiBQ
QVNTOiB3aW5kb3cuTm9kZUZpbHRlci5GSUxURVJfUkVKRUNUIHNob3VsZCBiZSAyIGFuZCBpcy4K
IFBBU1M6IHdpbmRvdy5Ob2RlRmlsdGVyLkZJTFRFUl9TS0lQIHNob3VsZCBiZSAzIGFuZCBpcy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0YW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLmh0bWwKaW5kZXggZGNlMjU4OC4uMTk1YmJjZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLmh0bWwKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24g
c2hvdWxkQmUoYSwgYikKICAgICBwcmludChtZXNzYWdlLCBjb2xvcik7CiB9CiAKLXZhciBjc3NS
dWxlLCBjc3NWYWx1ZSwgbm9kZUZpbHRlciwgZXZlbnQ7Cit2YXIgY3NzUnVsZSwgY3NzVmFsdWUs
IGV2ZW50OwogCiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
QEAgLTY2LDM0ICs2Niw2IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgc2hvdWxkQmUoIndpbmRv
dy5DU1NWYWx1ZS5DU1NfVkFMVUVfTElTVCIsIDIpOwogICAgIHNob3VsZEJlKCJ3aW5kb3cuQ1NT
VmFsdWUuQ1NTX0NVU1RPTSIsIDMpOwogCi0gICAgdmFyIG5vZGVJdGVyYXRvcjsKLSAgICB0cnkg
ewotICAgICAgICBub2RlSXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeyByZXR1cm4gTm9kZUZpbHRlci5G
SUxURVJfQUNDRVBUOyB9LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZhbHNlKTsKLSAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgbm9kZUl0ZXJh
dG9yID0gbmV3IE9iamVjdCgpOwotICAgIH0KLSAgICAKLSAgICBub2RlRmlsdGVyID0gbm9kZUl0
ZXJhdG9yLmZpbHRlcjsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5GSUxURVJfQUNDRVBUIiwg
MSk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuRklMVEVSX1JFSkVDVCIsIDIpOwotICAgIHNo
b3VsZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9TS0lQIiwgMyk7Ci0gICAgc2hvdWxkQmUoIm5vZGVG
aWx0ZXIuU0hPV19BTEwiLCAweEZGRkZGRkZGKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQiLCAweDAwMDAwMDAxKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSIsIDB4MDAwMDAwMDIpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1df
VEVYVCIsIDB4MDAwMDAwMDQpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQ0RBVEFf
U0VDVElPTiIsIDB4MDAwMDAwMDgpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRU5U
SVRZX1JFRkVSRU5DRSIsIDB4MDAwMDAwMTApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNI
T1dfRU5USVRZIiwgMHgwMDAwMDAyMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19Q
Uk9DRVNTSU5HX0lOU1RSVUNUSU9OIiwgMHgwMDAwMDA0MCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVG
aWx0ZXIuU0hPV19DT01NRU5UIiwgMHgwMDAwMDA4MCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCIsIDB4MDAwMDAxMDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlRfVFlQRSIsIDB4MDAwMDAyMDApOwotICAgIHNob3VsZEJlKCJub2RlRmls
dGVyLlNIT1dfRE9DVU1FTlRfRlJBR01FTlQiLCAweDAwMDAwNDAwKTsKLSAgICBzaG91bGRCZSgi
bm9kZUZpbHRlci5TSE9XX05PVEFUSU9OIiwgMHgwMDAwMDgwMCk7Ci0KICAgICBzaG91bGRCZSgi
d2luZG93Lk5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCIsIDEpOwogICAgIHNob3VsZEJlKCJ3aW5k
b3cuTm9kZUZpbHRlci5GSUxURVJfUkVKRUNUIiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5O
b2RlRmlsdGVyLkZJTFRFUl9TS0lQIiwgMyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLmh0bWwKaW5kZXggOTdkMmZhZC4uMGIzOWRkMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbApAQCAtODUsNyArODUsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0cnkgewogICAgICAgbm9kZUZpbHRlciA9IGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIGZ1
bmN0aW9uICgpIHt9LCBmYWxzZSkuZmlsdGVyOwogICAgIH0gY2F0Y2goZSkge30KLSAgICBzaG91
bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIucHJvdG90eXBlLmlzUHJvdG90eXBlT2Yobm9kZUZpbHRl
cikiLCB0cnVlKTsKKyAgICBzaG91bGRCZSgiRnVuY3Rpb24ucHJvdG90eXBlLmlzUHJvdG90eXBl
T2Yobm9kZUZpbHRlcikiLCB0cnVlKTsKIAogICAgIG9yaWdpbmFsTm9kZVByb3RvdHlwZSA9IHdp
bmRvdy5Ob2RlLnByb3RvdHlwZTsKICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL25vZGUtZmlsdGVyLWdjLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRl
ci1nYy5odG1sCmluZGV4IDA2NDlhZDIuLmIxY2M3NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL25vZGUtZmlsdGVyLWdjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bm9kZS1maWx0ZXItZ2MuaHRtbApAQCAtMyw4ICszLDggQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAKLXZhciBpdGVyYXRvciA9IGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIDAsIGZhbHNlKTsKLXZhciB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgMCwgZmFsc2UpOwordmFyIGl0ZXJhdG9y
ID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgZnVuY3Rpb24oKSB7fSwgZmFsc2UpOwordmFyIHdhbGtlciA9IGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBmdW5jdGlv
bigpIHt9LCBmYWxzZSk7CiAKIC8vIGNyZWF0ZSBsb3RzIG9mIG9iamVjdHMgdG8gZm9yY2UgYSBn
YXJiYWdlIGNvbGxlY3Rpb24KICB2YXIgaSA9IDA7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dAppbmRleCA1ZTU0Njg2
Li5kNGE5OGM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1p
bnRlcmZhY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmls
dGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQKQEAgLTM5LDggKzM5LDYgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIFtDb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0
YWJsZTogZmFsc2UsIHZhbHVlOiAwXQogKiBuYW1lCiBbQ29uZmlndXJhYmxlOiB0cnVlLCBlbnVt
ZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogTm9kZUZpbHRlcl0KLSogcHJv
dG90eXBlCi1bQ29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxl
OiBmYWxzZSwgdmFsdWU6IFtvYmplY3QgTm9kZUZpbHRlclByb3RvdHlwZV1dCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBk
MjE4NjQ1Li5lNzdjNGJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9k
b20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0xODkwLDQxICsxODkwLDQxIEBAIFBB
U1MgVHJlZVdhbGtlciBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1l
bnQuYm9keSwgTm9kZUZpbHRlci5TCiBQQVNTIFRyZWVXYWxrZXIgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51
bGwsIGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInByZXZpb3VzTm9kZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDkpIAogUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlNIT1dfQUxMLCBudWxsLCBm
YWxzZSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuZXh0Tm9kZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDEwKSAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2Vy
dF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0
eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNv
bnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBo
YXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1Mg
Tm9kZUZpbHRlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1
Y3RvciIgcHJvcGVydHkgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxU
RVJfQUNDRVBUIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFz
c2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9w
ZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTog
Y29uc3RhbnQgRklMVEVSX0FDQ0VQVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9SRUpFQ1Qgb24gaW50ZXJm
YWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9S
RUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfUkVK
RUNUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9TS0lQIG9uIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAi
cHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmls
dGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FMTCBv
biBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19BTEwgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2Rl
RmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZh
bHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FM
TCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IFNIT1dfRUxFTUVOVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2Rl
RmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAi
cHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmls
dGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19BVFRS
SUJVVEUgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfQVRUUklCVVRFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2Vy
dF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0
eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29u
c3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1RFWFQgb24gaW50ZXJmYWNlIG9i
amVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBvbiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxk
IG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUK
K1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBvbiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50
IFNIT1dfQ0RBVEFfU0VDVElPTiBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVy
IGludGVyZmFjZTogY29uc3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAi
cHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmls
dGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hP
V19FTlRJVFlfUkVGRVJFTkNFIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBh
ICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFu
dCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgU0hPV19FTlRJVFkgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHBy
b3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfUFJPQ0VTU0lOR19JTlNUUlVD
VElPTiBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29u
c3RhbnQgU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIG9uIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90
eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGlu
dGVyZmFjZTogY29uc3RhbnQgU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIG9uIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19DT01NRU5UIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHBy
b3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQ
QVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZp
bHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxz
ZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NV
TUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlRfVFlQRSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAot
RkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBFIG9u
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91
bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1
ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBF
IG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFj
ZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAot
RkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9GUkFHTUVO
VCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIg
c2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290
IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlRf
RlJBR01FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX05PVEFUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1G
QUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX05PVEFUSU9OIG9uIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90
IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJ
TCBOb2RlRmlsdGVyIGludGVyZmFjZTogb3BlcmF0aW9uIGFjY2VwdE5vZGUoTm9kZSkgYXNzZXJ0
X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5
IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX05PVEFUSU9OIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBO
b2RlRmlsdGVyIGludGVyZmFjZTogb3BlcmF0aW9uIGFjY2VwdE5vZGUoTm9kZSkgCiBGQUlMIERP
TVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IGFzc2VydF9lcXVhbHM6IGNsYXNzIHN0cmluZyBvZiBET01Ub2tlbkxpc3QgZXhw
ZWN0ZWQgIltvYmplY3QgRnVuY3Rpb25dIiBidXQgZ290ICJbb2JqZWN0IERPTVRva2VuTGlzdENv
bnN0cnVjdG9yXSIKIFBBU1MgRE9NVG9rZW5MaXN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAog
UEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRl
VHJlZVdhbGtlci1leHBlY3RlZC50eHQKaW5kZXggNzJlYWQ1My4uMzhlZjAwOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRy
ZWVXYWxrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2Rv
bS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dApAQCAtMyw1ICsz
LDUgQEAgUEFTUyBSZXF1aXJlZCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQg
YmUgcmVxdWlyZWQuCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2Vy
IHNob3VsZCBiZSBvcHRpb25hbCAoMSBwYXNzZWQpLiAKIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRz
IHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgyIHBhc3NlZCkuIAogUEFT
UyBPcHRpb25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9u
YWwgKDMgcGFzc2VkLCBudWxsKS4gCi1GQUlMIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVU
cmVlV2Fsa2VyIHNob3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkge30iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBPcHRpb25h
bCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDMgcGFz
c2VkLCBmdW5jdGlvbikuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci1leHBlY3RlZC50eHQKaW5k
ZXggNGQ1OTg2YzQuLjhhNTZkN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci1leHBlY3RlZC50
eHQKQEAgLTUsNzQzICs1LDc0MyBAQCBQQVNTIGNyZWF0ZU5vZGVJdGVyYXRvcigpIHdpdGggbnVs
bCBhcyBhcmd1bWVudHMKIEZBSUwgY3JlYXRlTm9kZUl0ZXJhdG9yKCkgd2l0aCB1bmRlZmluZWQg
YXMgYXJndW1lbnRzIGFzc2VydF9lcXVhbHM6IHdoYXRUb1Nob3cgZXhwZWN0ZWQgNDI5NDk2NzI5
NSBidXQgZ290IDAKIFBBU1MgUHJvcGFnYXRlIGV4Y2VwdGlvbiBmcm9tIGZpbHRlciBmdW5jdGlv
biAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hp
bGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWREaXYsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRE
aXYsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRE
aXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2MsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
YywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTIsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Ms
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxl
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0
Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihjb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihj
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJh
ZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBl
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sx
XSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sx
XSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRl
c3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxl
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAw
eEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2NmcmFnLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJh
ZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
MCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9U
cmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA5YWJlZDMwLi42NTU3ODRkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwv
VHJlZVdhbGtlci1leHBlY3RlZC50eHQKQEAgLTEsNzQyICsxLDc0MyBAQAogCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sx
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5uZXh0U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9kZSAiVHJlZVdhbGtlciB0ZXN0cyIgYnV0
IGdvdCBudWxsCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5uZXh0U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9kZSAiV3h5
emFiY2QiIGJ1dCBnb3QgbnVsbAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJF
ZmdoaWprbCIgYnV0IGdvdCBDb21tZW50IG5vZGUgPCEtLSJDb21tZW50ZXIiIGFuZCAiY29tbWVu
dGF0b3IiIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gIEkndi4uLi0tPgogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
YywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5uZXh0U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9kZSAiZG8gcmUgbWkgZmEgc28gbGEgdGki
IGJ1dCBnb3QgQ29tbWVudCBub2RlIDwhLS1JIG1hbGljaW91c2x5IGNyZWF0ZWQgYSBjb21tZW50
IHRoYXQgd2lsbCBicmVhayBpbmNhdXRpb3UuLi4tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Ms
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRl
eHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoY29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Y29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihj
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29t
bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5
cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
MCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0
ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0
ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5uZXh0U2libGluZygpIGV4cGVj
dGVkIFRleHQgbm9kZSAiSWprbG1ub3AKKyIgYnV0IGdvdCBDb21tZW50IG5vZGUgPCEtLUFscGhh
YmV0IHNvdXA/LS0+CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0
ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRl
c3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0
ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1s
RWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxF
bGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4
dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9y
ZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jZnJhZywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFn
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
MCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0
eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZG
RkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ2MDcwZTAuLjFhMGIxOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNDM3LDcgKzE0MzcsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
ZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCiAgICAgZG9tL05hbWVkTm9kZU1hcC5jcHAKICAg
ICBkb20vTm9kZS5jcHAKLSAgICBkb20vTm9kZUZpbHRlci5jcHAKICAgICBkb20vTm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHAKICAgICBkb20vTm9kZUl0ZXJhdG9yLmNwcAogICAgIGRvbS9Ob2RlT3JT
dHJpbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCAwNTA5NjRmLi41YWNhODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0NTU3LDIwICsxNDU1Nyw2IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE5vZGVGaWx0ZXIuY3Bw
Ij4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxOb2RlRmlsdGVy
Q29uZGl0aW9uLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggM2JiNGU3My4uOGUyNDQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY4NCw2ICsyNjg0LDcgQEAKIAkJODMw
MDMwRjUxQjdEMzNCNTAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAwMzBGMzFC
N0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcCAqLzsgfTsK
IAkJODMwMDMwRjYxQjdEMzNCNTAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwMDMw
RjQxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovOyB9
OwogCQk4MzAwMzBGODFCN0QzQjc4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDAzMEY3MUI3
RDM5ODgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovOyB9OworCQk4MzA2RUZG
MTFCOEJDRUE1MDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIg
LyogTmF0aXZlTm9kZUZpbHRlci5jcHAgKi87IH07CiAJCTgzMkI4NDM0MTlEOEU1NTEwMEIyNjA1
NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRl
RWxlbWVudEJhc2UuaCAqLzsgfTsKIAkJODMyQjg0MzYxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0Fu
aW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlLmNwcCAqLzsgfTsKIAkJODM0OEJGQUIxQjg1NzI5ODAwOTEyRjM2IC8qIENsYXNzQ29sbGVj
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzQ4QkZBOTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCAqLzsgfTsKQEAg
LTI2OTcsNiArMjY5OCw3IEBACiAJCTgzODZBOTcwMTlGNjFFNEYwMEUxRUM0QSAvKiBTdHlsZUJ1
aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM4NkE5NkUxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5jcHAgKi87IH07CiAJCTgz
OUFBRkVDMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQTFBMEMwQzhEMDA2MDVG
OTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwICovOyB9OwogCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVG
OTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5o
ICovOyB9OworCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyogTmF0aXZlTm9kZUZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOTU5RTEx
QjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLzsgfTsKIAkJODNCOTY4N0Ix
OUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCOTY4NzkxOUY4QUI4MzAwNEVGN0FG
IC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oICovOyB9OwogCQk4M0MwNUE1QTFBNjg2MjEyMDA3
RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MwNUE1ODFBNjg2MjEyMDA3RTVE
RUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAgKi87IH07CiAJCTgzQzA1
QTVCMUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MwNUE1OTFB
Njg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oICovOyB9
OwpAQCAtMjcxOCw2ICsyNzIwLDcgQEAKIAkJODNDMUQ0MzQxNzhENUFCNTAwMTQxRTY4IC8qIFNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjIxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbFJlbC5oICovOyB9OwogCQk4M0MxRDQzNTE3OEQ1QUI1MDAxNDFFNjggLyog
U1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNDMUQ0MjMxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9B
YnMuaCAqLzsgfTsKIAkJODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3Zl
dG9SZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
QzFENDI0MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggKi87IH07CisJ
CTgzRjEyMDZCMUI4QzEwNDcwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGMTIwNkExQjhDMTAz
NjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi87IH07CiAJCTg0MTlEMkE3MTIw
RDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNW
R1BhdGhCeXRlU3RyZWFtLmggKi87IH07CiAJCTg0MTlEMkE4MTIwRDkyRDAwMDE0MUY4RiAvKiBT
VkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRl
U3RyZWFtQnVpbGRlci5jcHAgKi87IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAwMDE0MUY4RiAvKiBT
VkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0
cmVhbUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTI5MDksNyArMjkxMiw2IEBACiAJCTg1NDJBNzk4MEFF
NUM5NDMwMERGNThERiAvKiBKU1NWR051bWJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGMzBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdO
dW1iZXIuY3BwICovOyB9OwogCQk4NTQyQTc5OTBBRTVDOTQ0MDBERjU4REYgLyogSlNTVkdFbGVt
ZW50V3JhcHBlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVy
RmFjdG9yeS5oICovOyB9OwogCQk4NTQyQTc5QTBBRTVDOTQ0MDBERjU4REYgLyogSlNTVkdFbGVt
ZW50V3JhcHBlckZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU3NEQxRjEwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmNwcCAqLzsgfTsKLQkJODU0RkU3MzAwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVG
aWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODU0RkU3MjYwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwICovOyB9OwogCQk4NTRG
RTczMTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MjcwQTIyOTdCRTAwNThEN0FEIC8qIE5v
ZGVGaWx0ZXIuaCAqLzsgfTsKIAkJODU0RkU3MzIwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0
ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3Bw
ICovOyB9OwogCQk4NTRGRTczMzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3
MjkwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCAqLzsgfTsKQEAgLTU0
ODgsOSArNTQ5MCw2IEBACiAJCUJDQjE2QzI4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xT
dHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oICovOyB9
OwogCQlCQ0IxNkMyOTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZDMTAw
OTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKIAkJQkNC
MTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkMxMTA5NzlDM0JEMDA0
Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0I3NzM2MTBDMTc4NTNEMDAxMzJCQTQgLyogSlNO
b2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25k
aXRpb24uY3BwICovOyB9OwotCQlCQ0I3NzM2MjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmls
dGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgg
Ki87IH07Ci0JCUJDQjc3MzYzMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNzcz
NjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi87IH07CiAJCUJD
QjkyRDRGMTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjkyRDRFMTI5MzU1MEIwMEM4Mzg3RiAv
KiBGb250QmFzZWxpbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQ0JCOEFCOTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkI4QUI1MTNGMUFG
QjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDQkI4QUJBMTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRl
cnZhbFRyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAwNTMsNiArMTAwNTIs
NyBAQAogCQk4MzAwMzBGMzFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xs
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyaWND
YWNoZWRIVE1MQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
MDAzMEY0MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDAzMEY3MUI3RDM5ODgwMEVE
M0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXRpdmVOb2RlRmlsdGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyQjg0MzMxOUQ4RTU1MTAwQjI2MDU1IC8q
IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdBbmltYXRlRWxlbWVudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODMyQjg0MzUxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlRWxlbWVudEJhc2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzQ4QkZBOTFCODU3Mjk1MDA5MTJG
MzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENsYXNzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDA5MCw2ICsxMDA5MCw4IEBACiAJCTgzQzFENDI0MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQ
YXRoU2VnTW92ZXRvUmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Bh
dGhTZWdNb3ZldG9SZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEMjZEM0Mx
QUZEQ0M1MDAwMUIzODczIC8qIENoaWxkTm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hpbGROb2RlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEMjZEM0QxQUZEQ0M1MDAwMUIzODczIC8qIFBh
cmVudE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4M0U5NTlFMTFCOEJDMjJCMDA0RDkzODUgLyogTmF0aXZlTm9kZUZpbHRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVOb2RlRmlsdGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2MyAvKiBKU05v
ZGVGaWx0ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNOb2RlRmlsdGVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQx
OUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0
cmVhbUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
UGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjY1LDcgKzEwMjY3LDYgQEAKIAkJ
ODU0MDc1NjYwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MT3B0aW9uRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2NzBBRDZDQkY5MDA2MjBDNTcgLyogRE9N
SFRNTE9wdGlvbkVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1NDA3NTY4MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudEludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MT3B0aW9uRWxl
bWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1NEZFNzI2MEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBOb2RlRmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODU0RkU3MjcwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVGaWx0ZXJDb25k
aXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTRGRTcyOTBBMjI5N0JF
MDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTMwOTUsOSArMTMwOTYsNiBAQAogCQlCQ0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEg
LyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FjaGVkWFNMU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBDYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVj
aWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OwogCQlCQ0IxNkMxMTA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25k
aXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZp
bHRlckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQjc3MzVG
MEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmls
dGVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05v
ZGVGaWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0I5MkQ0
RTEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZvbnRCYXNlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUE9ESW50ZXJ2YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNCQjhBQjYxM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsVHJlZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQT0RJbnRlcnZhbFRyZWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMzkxLDYgKzIxMzg5LDcgQEAKIAkJCQlCQ0JGQjUz
QTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi8sCiAJCQkJQkNCRkI1
M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuaCAqLywKIAkJCQk2NUUwRTk0
MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFwcGVyLmggKi8sCisJCQkJODNGMTIwNkExQjhD
MTAzNjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8sCiAJCQkJN0M5MUEzOEQx
QjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9kZU9yU3RyaW5nLmNwcCAqLywKIAkJCQk3QzkxQTM4RTFC
NDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcuaCAqLywKIAkJCQlGM0Q0NjE0NjExNjFE
NTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovLApAQCAtMjE1NzQsNyArMjE1NzMs
NiBAQAogCQkJCTA3Mzc5NEU3MTlFRTMzNUMwMEU1QTA0NSAvKiBKU05hdmlnYXRvckN1c3RvbS5j
cHAgKi8sCiAJCQkJQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAg
Ki8sCiAJCQkJQkM5NDM5QzIxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oICovLAot
CQkJCUJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICov
LAogCQkJCTFBNzUwREQzMEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1c3RvbS5j
cHAgKi8sCiAJCQkJQkNEOUMyNjEwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUxpc3RDdXN0b20u
Y3BwICovLAogCQkJCUFEMjBCMThDMThFOUQyMTYwMDVBODA4MyAvKiBKU05vZGVMaXN0Q3VzdG9t
LmggKi8sCkBAIC0yMTg5NSw4ICsyMTg5Myw2IEBACiAJCQkJOTNCNzBENEUwOUVCMEM3QzAwOUQ4
NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5oICovLAogCQkJCTkzNUY0NTQwMEY3QzNCNUYwMEQ3QzFG
QiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmNwcCAqLywKIAkJCQk5MzVGNDU0MTBGN0MzQjVGMDBE
N0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5oICovLAotCQkJCUJDQjc3MzVFMEMxNzg1M0Qw
MDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovLAotCQkJCUJDQjc3MzVGMEMx
Nzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gIkNhbGxiYWNrIE9iamVjdHMiOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTIzNDA3LDEwICsyMzQwMywxMSBAQAogCQkJCTg1QUNBOUY5MEE5QjYzMTAwMDY3MUU5MCAvKiBO
YW1lZE5vZGVNYXAuaWRsICovLAogCQkJCUE4MTg3MjE5MDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1l
Tm9kZUxpc3QuY3BwICovLAogCQkJCUE4MTg3MjEzMDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lTm9k
ZUxpc3QuaCAqLywKKwkJCQk4MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyogTmF0aXZlTm9kZUZp
bHRlci5jcHAgKi8sCisJCQkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVG
aWx0ZXIuaCAqLywKIAkJCQlBOEM0QTdFRTA5RDU2MzI3MDAwM0FDOEQgLyogTm9kZS5jcHAgKi8s
CiAJCQkJMTQxMTVCNTEwOUY4NEI3MTAwQ0E0RkMxIC8qIE5vZGUuaCAqLywKIAkJCQkxNERDMEQw
QjA5RkVDRkE0MDA3QjAyMzUgLyogTm9kZS5pZGwgKi8sCi0JCQkJODU0RkU3MjYwQTIyOTdCRTAw
NThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwICovLAogCQkJCTg1NEZFNzI3MEEyMjk3QkUwMDU4RDdB
RCAvKiBOb2RlRmlsdGVyLmggKi8sCiAJCQkJMTQxMTVBRjkwOUY4NDdENjAwQ0E0RkMxIC8qIE5v
ZGVGaWx0ZXIuaWRsICovLAogCQkJCTg1NEZFNzI4MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmls
dGVyQ29uZGl0aW9uLmNwcCAqLywKQEAgLTI0NzcyLDYgKzI0NzY5LDcgQEAKIAkJCQk4NTNCRjRE
QjBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0MDc1
MjYwQUQ2QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1QjQ5OEZCMEFEQjM0MDIwMDkyNUNCQiAvKiBET01Ob2RlSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NTUyNkMzNzBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTBCNDFDMjBBRDlFN0U3MDBBNkVENEYgLyog
RE9NTm9kZUl0ZXJhdG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1QUNBQThEMEE5
Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTY1NCw3
ICsyNTY1Miw2IEBACiAJCQkJMDczQkUzNEQxN0QxN0U3QTAwMkJENDMxIC8qIEpTTmF2aWdhdG9y
VXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0MzlDMzEx
NkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDEx
NUI3MzA5Rjg0Q0Q2MDBDQTRGQzEgLyogSlNOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlCQ0I3NzM2MjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc1MEQ4RTBBOTBFNTIxMDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDlDMkMzMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05v
ZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDIwQjE4RDE4RTlEMjM3MDA1QTgwODMgLyog
SlNOb2RlTGlzdEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODkwNSw2ICsyODkwMiw3IEBA
CiAJCQkJQkMyRUQ2QkMwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREExNUU5RDEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREY3RTlDMzEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRp
b0J1ZmZlckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzRjEyMDZCMUI4QzEwNDcw
MEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRB
MTVFOUYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZERUFBQUYzMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvQnVmZmVy
U291cmNlTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVBNTEyQjAzRUUx
MDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTE4Miw2
ICsyOTE4MCw3IEBACiAJCQkJNTExRUYyRDExN0YwRkRGMTAwRTRGQTE2IC8qIEpTSURCT2JqZWN0
U3RvcmVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRUYyQzgxN0YwRkQzNTAwRTRG
QTE2IC8qIEpTSURCT3BlbkRCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJD
OTE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTgzMDZFRkYxMUI4QkNFQTUwMDMxRDAzMiAvKiBOYXRpdmVOb2RlRmlsdGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxMUVGMkNBMTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQlRyYW5zYWN0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkNCMTdGMEZEMzUwMEU0RkExNiAvKiBKU0lE
QlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzZDNDlGMzBEN0RC
QTA1MDBGRkE1NTggLyogSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjkyNDcsOCArMjkyNDYsNiBAQAogCQkJCTE0REMwRDM3MDlGRUQwNzMwMDdCMDIzNSAvKiBKU05v
ZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyNjQwQzE3QUE2NzAwNUM5MEEyIC8qIEpT
Tm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDExNUI3MjA5Rjg0Q0Q2MDBDQTRG
QzEgLyogSlNOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQjc3MzYxMEMxNzg1
M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQkNCNzczNjMwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTc1MEQ4RDBBOTBFNTIxMDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NTBERDQwQTkwRTcyOTAwMEZGMjE1IC8qIEpT
Tm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDlDMkMyMEMxN0I2
OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk3ODUsNyAr
Mjk3ODIsNiBAQAogCQkJCTI2NzcyNjAwMUE1QjNBRDkwMDNDMjRERCAvKiBORkFUb0RGQS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0VGNDNFMDBFNjc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNl
SW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MDAwOUQ1NjMyNzAwMDNBQzhEIC8q
IE5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODU0RkU3MzAwQTIyOTdCRTAwNThEN0FEIC8q
IE5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzIwQTIyOTdCRTAwNThE
N0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3
MzQwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0RkZDMDIyQjE2NDNCNzEwMDA0RTE2MzggLyogTm9kZVJhcmVEYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAppbmRleCBhZGZkOGMxLi5lMGFiYjdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmls
dGVyQ29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dP
YmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAtMjksNyArMjksNyBAQCBHT2JqZWN0Tm9k
ZUZpbHRlckNvbmRpdGlvbjo6fkdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uKCkKICAgICBnX29i
amVjdF9zZXRfZGF0YShHX09CSkVDVChtX2ZpbHRlci5nZXQoKSksICJ3ZWJraXQtY29yZS1ub2Rl
LWZpbHRlciIsIG51bGxwdHIpOwogfQogCi1zaG9ydCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlv
bjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqIG5vZGUpIGNvbnN0CitzaG9ydCBH
T2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAog
ewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpF
Q1Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RO
b2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dP
YmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggNjEyODAyNS4uNTM2NmE1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5v
ZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uKGZpbHRlcikpOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5v
ZGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0IG92
ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uKFdlYktp
dERPTU5vZGVGaWx0ZXIqIGZpbHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDFiNWU5NWIuLmI1YzVmZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAt
MTE0LDcgKzExNCw2IEBACiAjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlQ3Vz
dG9tLmNwcCIKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIgogI2luY2x1ZGUg
IkpTTm9kZUZpbHRlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlSXRlcmF0b3JDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTTm9kZUxpc3RDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCmluZGV4IGQ5OGU2MzIuLmM0N2VmNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU01haW5U
aHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGVJbnN0cnVt
ZW50YXRpb24uaCIKKyNpbmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbi5oPgogCiB1c2luZyBuYW1l
c3BhY2UgSlNDOwogICAgIApAQCAtNjQsMTQgKzY1LDE4IEBAIEpTVmFsdWUgSlNDYWxsYmFja0Rh
dGE6Omludm9rZUNhbGxiYWNrKEpTVmFsdWUgdGhpc1ZhbHVlLCBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciYKICAgICAgICAgY2FsbFR5cGUgPSBjYWxsYmFjaygpLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxs
RGF0YShjYWxsYmFjaygpLCBjYWxsRGF0YSk7CiAgICAgfQogICAgIGlmIChjYWxsVHlwZSA9PSBD
YWxsVHlwZU5vbmUpIHsKLSAgICAgICAgaWYgKG1ldGhvZCA9PSBDYWxsYmFja1R5cGU6OkZ1bmN0
aW9uKQorICAgICAgICBpZiAobWV0aG9kID09IENhbGxiYWNrVHlwZTo6RnVuY3Rpb24pIHsKKyAg
ICAgICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gRXhjZXB0aW9uOjpjcmVhdGUoZXhlYy0+dm0o
KSwgY3JlYXRlVHlwZUVycm9yKGV4ZWMpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7
CisgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIWZ1bmN0aW9uTmFtZS5pc051bGwoKSk7CiAg
ICAgICAgIGZ1bmN0aW9uID0gY2FsbGJhY2soKS0+Z2V0KGV4ZWMsIGZ1bmN0aW9uTmFtZSk7CiAg
ICAgICAgIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKLSAgICAg
ICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkKKyAgICAgICAgaWYgKGNhbGxUeXBlID09
IENhbGxUeXBlTm9uZSkgeworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBFeGNlcHRp
b246OmNyZWF0ZShleGVjLT52bSgpLCBjcmVhdGVUeXBlRXJyb3IoZXhlYykpOwogICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIEFTU0VSVCghZnVu
Y3Rpb24uaXNFbXB0eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
YjQxMTlhLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZp
bHRlckNvbmRpdGlvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0vKgotICog
IENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
LSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCi0KLSNpbmNsdWRlICJKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJKU05vZGUuaCIKLSNpbmNsdWRlICJKU05vZGVGaWx0
ZXIuaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
dXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjpKU05vZGVGaWx0
ZXJDb25kaXRpb24oVk0mLCBOb2RlRmlsdGVyKiBvd25lciwgSlNWYWx1ZSBmaWx0ZXIpCi0gICAg
OiBtX2ZpbHRlcihmaWx0ZXIuaXNPYmplY3QoKSA/IFdlYWs8SlNPYmplY3Q+KGpzQ2FzdDxKU09i
amVjdCo+KGZpbHRlciksICZtX3dlYWtPd25lciwgb3duZXIpIDogbnVsbHB0cikKLXsKLX0KLQot
c2hvcnQgSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBOb2RlKiBmaWx0ZXJOb2RlKSBjb25zdAotewotICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4
ZWMpOwotCi0gICAgaWYgKCFtX2ZpbHRlcikKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJ
TFRFUl9BQ0NFUFQ7Ci0KLSAgICAvLyBFeGVjIGlzIG51bGwgaWYgd2UndmUgYmVlbiBjYWxsZWQg
ZnJvbSBhIG5vbi1KYXZhU2NyaXB0IGxhbmd1YWdlIGFuZCB0aGUgZG9jdW1lbnQKLSAgICAvLyBp
cyBubyBsb25nZXIgYWJsZSB0byBydW4gSmF2YVNjcmlwdCAoZS5nLiwgaXQncyBkaXNjb25uZWN0
ZWQgZnJvbSBpdHMgZnJhbWUpLgotICAgIGlmICghZXhlYykKLSAgICAgICAgcmV0dXJuIE5vZGVG
aWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0KLSAgICBKU1ZhbHVlIGZpbHRlciA9IG1fZmlsdGVyLmdl
dCgpOwotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0
Q2FsbERhdGEoZmlsdGVyLCBjYWxsRGF0YSk7Ci0gICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBl
Tm9uZSkgewotICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIuZ2V0KGV4ZWMsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoZXhlYywgImFjY2VwdE5vZGUiKSk7Ci0gICAgICAgIGNhbGxUeXBlID0gZ2V0Q2Fs
bERhdGEoZmlsdGVyLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlw
ZU5vbmUpIHsKLSAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJOb2RlRmlsdGVyIG9iamVjdCBkb2VzIG5vdCBoYXZlIGFuIGFj
Y2VwdE5vZGUgZnVuY3Rpb24iKSk7Ci0gICAgICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklM
VEVSX1JFSkVDVDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3M7Ci0gICAgLy8gRklYTUU6IFRoZSBub2RlIHNob3VsZCBoYXZlIHRoZSBwcm90b3R5cGUg
Y2hhaW4gdGhhdCBjYW1lIGZyb20gaXRzIGRvY3VtZW50LCBub3QKLSAgICAvLyB3aGF0ZXZlciBw
cm90b3R5cGUgY2hhaW4gbWlnaHQgYmUgb24gdGhlIHdpbmRvdyB0aGlzIGZpbHRlciBjYW1lIGZy
b20uIEJ1ZyAyNzY2MgotICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVwcmVjYXRlZEdsb2Jh
bE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgZmlsdGVyTm9kZSkpOwotICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7
Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTQzo6Y2FsbChleGVjLCBmaWx0ZXIsIGNhbGxUeXBl
LCBjYWxsRGF0YSwgbV9maWx0ZXIuZ2V0KCksIGFyZ3MpOwotICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0KLSAg
ICBpbnQgaW50UmVzdWx0ID0gcmVzdWx0LnRvSW50MzIoZXhlYyk7Ci0gICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsK
LQotICAgIHJldHVybiBpbnRSZXN1bHQ7Ci19Ci0KLWJvb2wgSlNOb2RlRmlsdGVyQ29uZGl0aW9u
OjpXZWFrT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHJl
dHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChjb250ZXh0KTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
b2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDb25kaXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZhMWJlMy4u
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25k
aXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0
IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCi0gKiAgQ29weXJpZ2h0IChDKSAy
MDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYgSlNOb2RlRmlsdGVyQ29uZGl0aW9uX2gK
LSNkZWZpbmUgSlNOb2RlRmlsdGVyQ29uZGl0aW9uX2gKLQotI2luY2x1ZGUgIk5vZGVGaWx0ZXJD
b25kaXRpb24uaCIKLSNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KLSNpbmNsdWRlIDxoZWFwL1dlYWtJ
bmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVu
dGltZS9KU0NKU1ZhbHVlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgTm9kZTsKLSAgICBjbGFzcyBOb2RlRmlsdGVyOwot
Ci0gICAgY2xhc3MgSlNOb2RlRmlsdGVyQ29uZGl0aW9uIDogcHVibGljIE5vZGVGaWx0ZXJDb25k
aXRpb24gewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxKU05vZGVGaWx0ZXJDb25k
aXRpb24+IGNyZWF0ZShKU0M6OlZNJiB2bSwgTm9kZUZpbHRlciogb3duZXIsIEpTQzo6SlNWYWx1
ZSBmaWx0ZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpT
Tm9kZUZpbHRlckNvbmRpdGlvbih2bSwgb3duZXIsIGZpbHRlcikpOwotICAgICAgICB9Ci0KLSAg
ICBwcml2YXRlOgotICAgICAgICBKU05vZGVGaWx0ZXJDb25kaXRpb24oSlNDOjpWTSYsIE5vZGVG
aWx0ZXIqIG93bmVyLCBKU0M6OkpTVmFsdWUgZmlsdGVyKTsKLQotICAgICAgICB2aXJ0dWFsIHNo
b3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7Ci0KLSAgICAgICAg
Y2xhc3MgV2Vha093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKLSAgICAgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7Ci0gICAgICAg
IH07Ci0gICAgICAgIFdlYWtPd25lciBtX3dlYWtPd25lcjsKLSAgICAgICAgbXV0YWJsZSBKU0M6
OldlYWs8SlNDOjpKU09iamVjdD4gbV9maWx0ZXI7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gSlNOb2RlRmlsdGVyQ29uZGl0aW9uX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCmluZGV4IDcwNTMz
ZGIuLjlmMzAwY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUZpbHRlckN1c3RvbS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDQxICsxMCw1OCBAQAogICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQogICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJKU05vZGVGaWx0ZXIuaCIKIAotI2luY2x1ZGUgIkpTTm9k
ZUZpbHRlckNvbmRpdGlvbi5oIgorI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgiCisjaW5jbHVk
ZSAiSlNOb2RlLmgiCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXZvaWQgSlNOb2RlRmlsdGVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihKU0M6OlNs
b3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmaW1wbCgp
KTsKLX0KK3VzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLVJlZlB0cjxOb2RlRmlsdGVyPiBKU05vZGVG
aWx0ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQorLy8gRklY
TUU6IFRoZSBiaW5kaW5ncyBnZW5lcmF0b3IgaXMgY3VycmVudGx5IG5vdCBhYmxlIHRvIGdlbmVy
YXRlCisvLyBjYWxsYmFjayBmdW5jdGlvbiBjYWxscyBpZiB0aGV5IHJldHVybiBzb21ldGhpbmcg
ZWxzZSB0aGFuIGEKKy8vIGJvb2xlYW4uCit1aW50MTZfdCBKU05vZGVGaWx0ZXI6OmFjY2VwdE5v
ZGUoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNOb2RlRmlsdGVyOjpp
bmZvKCkpKQotICAgICAgICByZXR1cm4gJkpTQzo6anNDYXN0PEpTTm9kZUZpbHRlcio+KGFzT2Jq
ZWN0KHZhbHVlKSktPmltcGwoKTsKKyAgICBSZWY8SlNOb2RlRmlsdGVyPiBwcm90ZWN0KCp0aGlz
KTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCktPnZtKCkp
OworCisgICAgRXhlY1N0YXRlKiBleGVjID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFs
RXhlYygpOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgYXJncy5hcHBlbmQo
dG9KUyhleGVjLCBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLCBub2RlKSk7CisgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVD
VDsKKworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247CisgICAgSlNW
YWx1ZSB2YWx1ZSA9IG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJncywgSlNDYWxsYmFja0RhdGE6
OkNhbGxiYWNrVHlwZTo6RnVuY3Rpb25Pck9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhl
eGVjLCAiYWNjZXB0Tm9kZSIpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKHJldHVybmVk
RXhjZXB0aW9uKSB7CisgICAgICAgIC8vIFJldGhyb3cgZXhjZXB0aW9uLgorICAgICAgICBleGVj
LT52bSgpLnNldEV4Y2VwdGlvbihyZXR1cm5lZEV4Y2VwdGlvbik7CisKKyAgICAgICAgcmV0dXJu
IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CisgICAgfQogCi0gICAgaWYgKCF2YWx1ZS5pc09i
amVjdCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB1aW50MTZfdCByZXN1bHQgPSB0
b1VJbnQxNihleGVjLCB2YWx1ZSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsK
IAotICAgIFJlZlB0cjxOb2RlRmlsdGVyPiByZXN1bHQgPSBOb2RlRmlsdGVyOjpjcmVhdGUoKTsK
LSAgICByZXN1bHQtPnNldENvbmRpdGlvbihKU05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSh2
bSwgcmVzdWx0LmdldCgpLCB2YWx1ZSkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRp
b24uaAppbmRleCAzYmUxNTYzLi42YzM3NzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oCkBAIC00Myw3ICs0Myw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGZpbHRlcikpOwogICAgICAgICB9CiAKLSAgICAgICAg
dmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0Owor
ICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0OwogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24oaWQgPERPTU5vZGVGaWx0ZXI+
IGZpbHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05v
ZGVGaWx0ZXJDb25kaXRpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNO
b2RlRmlsdGVyQ29uZGl0aW9uLm1tCmluZGV4IDI0YjUxOTIuLjk4NGExYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlv
bi5tbQpAQCAtMzcsNyArMzcsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXNob3J0IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEV4
ZWNTdGF0ZSosIE5vZGUqIG5vZGUpIGNvbnN0CitzaG9ydCBPYmpDTm9kZUZpbHRlckNvbmRpdGlv
bjo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAogewogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDg4NWMwZWMuLmVk
OTQyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC0zNDc1LDYgKzM0NzUsOCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hl
YWRlcgogICAgICMgRGVzdHJ1Y3RvcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmly
dHVhbCB+JGNsYXNzTmFtZSgpO1xuIik7CiAKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IEpTQ2FsbGJhY2tEYXRhKiBjYWxsYmFja0RhdGEoKSB7IHJldHVybiBtX2RhdGE7IH1cbiIpOwor
CiAgICAgIyBDb25zdHJ1Y3RvciBvYmplY3QgZ2V0dGVyLgogICAgIGlmIChAeyRpbnRlcmZhY2Ut
PmNvbnN0YW50c30pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7XG4iKTsKQEAgLTM1MTYsNiArMzUxOCwxMCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRl
cgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTtc
biIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAorICAgICMgdG9KUygp
LgorICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGludGVyZmFjZU5hbWUqKTtcbiIpOworICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsICRpbnRlcmZhY2VOYW1l
JiBpbXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9XG5cbiIp
OworCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn0gLy8gbmFtZXNwYWNlIFdlYkNvcmVcblxu
Iik7CiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRl
Q29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJp
bmc7CkBAIC0zNjI5LDYgKzM2MzUsOSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0
aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4vLyBGdW5jdGlvbnNcbiIpOwogICAg
ICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAg
ICAgICAgICAgICBteSBAcGFyYW1zID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9OworICAgICAg
ICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tIn0pIHsKKyAgICAgICAgICAgICAgICBuZXh0OworICAgICAgICAgICAgfQogICAgICAgICAg
ICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
In0gfHwKICAgICAgICAgICAgICAgICAhKEdldE5hdGl2ZVR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPnR5cGUpIGVxICJib29sIikpIHsKICAgICAgICAgICAgICAgICBuZXh0OwpAQCAtMzY4OSw2
ICszNjk4LDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KICAgICAgICAg
fQogICAgIH0KIAorICAgICMgdG9KUygpIGltcGxlbWVudGF0aW9uLgorICAgIHB1c2goQGltcGxD
b250ZW50LCAiXG5KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgJGludGVyZmFjZU5hbWUqIGltcGwpXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIntcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghaW1wbCB8fCAhc3Rh
dGljX2Nhc3Q8JHtjbGFzc05hbWV9Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKVxuIik7CisgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBqc051bGwoKTtcblxuIik7CisgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSY+
KCppbXBsKS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTtcblxuIik7CisgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG4iKTsKKwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG59XG4iKTsKICAg
ICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRp
b25hbFN0cmluZygkaW50ZXJmYWNlKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2VuZGlm
IC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpD
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5w
bQppbmRleCBjNWI4Nzc5Li42MzVkMTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTQyMCw2ICs0MjAsNyBAQCBz
dWIgR2V0SW1wbENsYXNzTmFtZQogewogICAgIG15ICRuYW1lID0gc2hpZnQ7CiAKKyAgICByZXR1
cm4gIk5hdGl2ZU5vZGVGaWx0ZXIiIGlmICRuYW1lIGVxICJOb2RlRmlsdGVyIjsKICAgICByZXR1
cm4gIkRPTVdpbmRvdyIgaWYgJG5hbWUgZXEgIkFic3RyYWN0VmlldyI7CiAgICAgcmV0dXJuICRu
YW1lOwogfQpAQCAtNjkzLDcgKzY5NCw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICB9
CiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICRpbXBsSW5jbHVk
ZXN7Ik5vZGVGaWx0ZXIuaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siTmF0aXZlTm9k
ZUZpbHRlci5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJPYmpDTm9kZUZpbHRlckNv
bmRpdGlvbi5oIn0gPSAxOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTU1Nyw3ICsxNTU4
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBteSAkcGFy
YW1OYW1lID0gJG5lZWRzQ3VzdG9teyJOb2RlRmlsdGVyIn07CiAgICAgICAgICAgICAgICAgcHVz
aChAZnVuY3Rpb25Db250ZW50LCAiICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlRmlsdGVyPiBuYXRp
dmVOb2RlRmlsdGVyO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50
LCAiICAgIGlmICgkcGFyYW1OYW1lKVxuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rp
b25Db250ZW50LCAiICAgICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6Tm9kZUZpbHRl
cjo6Y3JlYXRlKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFt
TmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAg
ICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6TmF0aXZlTm9kZUZpbHRlcjo6Y3JlYXRl
KFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFtTmFtZSkpO1xu
Iik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlck5hbWVzLCAi
ZWMiKSBpZiAkcmFpc2VzRXhjZXB0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmlu
ZGV4IDY3NDJmYjguLjU1Njg0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01B
bGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAt
MTA4LDcgKzEwOCw2IEBACiAjaW5jbHVkZSAiTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAiCiAjaW5j
bHVkZSAiTmFtZWROb2RlTWFwLmNwcCIKICNpbmNsdWRlICJOb2RlLmNwcCIKLSNpbmNsdWRlICJO
b2RlRmlsdGVyLmNwcCIKICNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKICNpbmNs
dWRlICJOb2RlSXRlcmF0b3IuY3BwIgogI2luY2x1ZGUgIk5vZGVPclN0cmluZy5jcHAiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTBhMzRjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9OYXRpdmVOb2RlRmlsdGVyLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZU5vZGVGaWx0ZXIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitOYXRpdmVOb2RlRmlsdGVyOjpOYXRpdmVOb2RlRmlsdGVyKFJlZlB0
cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNvbmRpdGlvbikKKyAgICA6IG1fY29uZGl0aW9uKGNv
bmRpdGlvbikKK3sgfQorCit1aW50MTZfdCBOYXRpdmVOb2RlRmlsdGVyOjphY2NlcHROb2RlKE5v
ZGUqIG5vZGUpCit7CisgICAgLy8gY2FzdCB0byBzaG9ydCBzaWxlbmNlcyAiZW51bWVyYWwgYW5k
IG5vbi1lbnVtZXJhbCB0eXBlcyBpbiByZXR1cm4iIHdhcm5pbmcKKyAgICByZXR1cm4gbV9jb25k
aXRpb24gPyBtX2NvbmRpdGlvbi0+YWNjZXB0Tm9kZShub2RlKSA6IHN0YXRpY19jYXN0PHVpbnQx
Nl90PihGSUxURVJfQUNDRVBUKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uN2IwNzhlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRp
dmVOb2RlRmlsdGVyLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmF0
aXZlTm9kZUZpbHRlcl9oCisjZGVmaW5lIE5hdGl2ZU5vZGVGaWx0ZXJfaAorCisjaW5jbHVkZSAi
Tm9kZUZpbHRlci5oIgorI2luY2x1ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBOYXRpdmVOb2RlRmlsdGVyIGZpbmFsIDogcHVibGljIE5v
ZGVGaWx0ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TmF0aXZlTm9kZUZpbHRlcj4gY3Jl
YXRlKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNvbmRpdGlvbikKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdGl2ZU5vZGVGaWx0ZXIoV1RGOjptb3ZlKGNvbmRp
dGlvbikpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPE5hdGl2ZU5vZGVGaWx0ZXI+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXRpdmVOb2RlRmlsdGVy
KCkpOworICAgIH0KKworICAgIHZpcnR1YWwgdWludDE2X3QgYWNjZXB0Tm9kZShOb2RlKikgb3Zl
cnJpZGU7CisKKyAgICB2b2lkIHNldENvbmRpdGlvbihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlv
bj4mJiBjb25kaXRpb24pIHsgQVNTRVJUKCFtX2NvbmRpdGlvbik7IG1fY29uZGl0aW9uID0gY29u
ZGl0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTmF0aXZlTm9kZUZpbHRlcihSZWZQ
dHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4mJik7CisKKyAgICBOYXRpdmVOb2RlRmlsdGVyKCkgeyB9
CisKKyAgICBSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gbV9jb25kaXRpb247Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOYXRpdmVOb2RlRmlsdGVyX2gKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVGaWx0ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
ZGFiYzU0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMCBGcmVkZXJp
ayBIb2xsamVuIChmcmVkZXJpay5ob2xsamVuQGhpZy5ubykKLSAqIENvcHlyaWdodCAoQykgMjAw
MSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVl
bCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCi0KLSNpbmNsdWRlICJOb2RlLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotc2hvcnQgTm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAgLy8gY2FzdCB0byBzaG9ydCBz
aWxlbmNlcyAiZW51bWVyYWwgYW5kIG5vbi1lbnVtZXJhbCB0eXBlcyBpbiByZXR1cm4iIHdhcm5p
bmcKLSAgICByZXR1cm4gbV9jb25kaXRpb24gPyBtX2NvbmRpdGlvbi0+YWNjZXB0Tm9kZShzdGF0
ZSwgbm9kZSkgOiBzdGF0aWNfY2FzdDxzaG9ydD4oRklMVEVSX0FDQ0VQVCk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmls
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5oCmluZGV4IDk2MTk3ZDkuLjI2
Zjc2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaApAQCAtMyw3ICszLDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwMCBGcmVkZXJpayBIb2xsamVuIChmcmVkZXJpay5ob2xsamVuQGhpZy5ubykK
ICAqIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogQ29w
eXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQotICog
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwOCwgMjAwOSwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDcwICsyNSw1
MCBAQAogI2lmbmRlZiBOb2RlRmlsdGVyX2gKICNkZWZpbmUgTm9kZUZpbHRlcl9oCiAKLSNpbmNs
dWRlICJET01XcmFwcGVyV29ybGQuaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE5vZGVGaWx0ZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxOb2RlRmlsdGVyPiB7Ci0gICAgcHVibGljOgotICAgICAgICAvKioKLSAgICAgICAg
ICogVGhlIGZvbGxvd2luZyBjb25zdGFudHMgYXJlIHJldHVybmVkIGJ5IHRoZSBhY2NlcHROb2Rl
KCkKLSAgICAgICAgICogbWV0aG9kOgotICAgICAgICAgKi8KLSAgICAgICAgZW51bSB7Ci0gICAg
ICAgICAgICBGSUxURVJfQUNDRVBUID0gMSwKLSAgICAgICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAy
LAotICAgICAgICAgICAgRklMVEVSX1NLSVAgICA9IDMKLSAgICAgICAgfTsKK2NsYXNzIE5vZGU7
CiAKLSAgICAgICAgLyoqCi0gICAgICAgICAqIFRoZXNlIGFyZSB0aGUgYXZhaWxhYmxlIHZhbHVl
cyBmb3IgdGhlIHdoYXRUb1Nob3cgcGFyYW1ldGVyLgotICAgICAgICAgKiBUaGV5IGFyZSB0aGUg
c2FtZSBhcyB0aGUgc2V0IG9mIHBvc3NpYmxlIHR5cGVzIGZvciBOb2RlLCBhbmQKLSAgICAgICAg
ICogdGhlaXIgdmFsdWVzIGFyZSBkZXJpdmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNvcnJl
c3BvbmRpbmcKLSAgICAgICAgICogdG8gdGhlIHZhbHVlIG9mIE5vZGVUeXBlIGZvciB0aGUgZXF1
aXZhbGVudCBub2RlIHR5cGUuCi0gICAgICAgICAqLwotICAgICAgICBlbnVtIHsKLSAgICAgICAg
ICAgIFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9IDB4RkZGRkZGRkYsCi0gICAgICAg
ICAgICBTSE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAxLAotICAgICAg
ICAgICAgU0hPV19BVFRSSUJVVEUgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMiwKLSAgICAg
ICAgICAgIFNIT1dfVEVYVCAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCi0gICAg
ICAgICAgICBTSE9XX0NEQVRBX1NFQ1RJT04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAotICAg
ICAgICAgICAgU0hPV19FTlRJVFlfUkVGRVJFTkNFICAgICAgICAgID0gMHgwMDAwMDAxMCwKLSAg
ICAgICAgICAgIFNIT1dfRU5USVRZICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMjAsCi0g
ICAgICAgICAgICBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gICAgPSAweDAwMDAwMDQwLAot
ICAgICAgICAgICAgU0hPV19DT01NRU5UICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDA4MCwK
LSAgICAgICAgICAgIFNIT1dfRE9DVU1FTlQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAxMDAs
Ci0gICAgICAgICAgICBTSE9XX0RPQ1VNRU5UX1RZUEUgICAgICAgICAgICAgPSAweDAwMDAwMjAw
LAotICAgICAgICAgICAgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQw
MCwKLSAgICAgICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAgICAgICAgICA9IDB4MDAwMDA4
MDAKLSAgICAgICAgfTsKK2NsYXNzIE5vZGVGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb2Rl
RmlsdGVyPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Tm9kZUZpbHRlcigpIHsgfQorICAgIHZp
cnR1YWwgdWludDE2X3QgYWNjZXB0Tm9kZShOb2RlKikgPSAwOwogCi0gICAgICAgIHN0YXRpYyBS
ZWY8Tm9kZUZpbHRlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gY29u
ZGl0aW9uKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOb2Rl
RmlsdGVyKGNvbmRpdGlvbikpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIFJlZjxOb2Rl
RmlsdGVyPiBjcmVhdGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBOb2RlRmlsdGVyKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9k
ZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKLQotICAgICAgICAvLyBEbyBub3QgY2Fs
bCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0
aGUgT2JqZWN0aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUg
bWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMu
Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QgeyByZXR1cm4gYWNj
ZXB0Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbm9kZSks
IG5vZGUpOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldENvbmRpdGlvbihQYXNzUmVmUHRy
PE5vZGVGaWx0ZXJDb25kaXRpb24+IGNvbmRpdGlvbikgeyBBU1NFUlQoIW1fY29uZGl0aW9uKTsg
bV9jb25kaXRpb24gPSBjb25kaXRpb247IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxp
Y2l0IE5vZGVGaWx0ZXIoUGFzc1JlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBjb25kaXRpb24p
IDogbV9jb25kaXRpb24oY29uZGl0aW9uKSB7IH0KLSAgICAgICAgTm9kZUZpbHRlcigpIHt9Cisg
ICAgLyoKKyAgICAgKiBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyBhcmUgcmV0dXJuZWQgYnkgdGhl
IGFjY2VwdE5vZGUoKQorICAgICAqIG1ldGhvZDoKKyAgICAgKi8KKyAgICBlbnVtIHsKKyAgICAg
ICAgRklMVEVSX0FDQ0VQVCA9IDEsCisgICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAyLAorICAgICAg
ICBGSUxURVJfU0tJUCAgID0gMworICAgIH07CiAKLSAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXJD
b25kaXRpb24+IG1fY29uZGl0aW9uOworICAgIC8qCisgICAgICogVGhlc2UgYXJlIHRoZSBhdmFp
bGFibGUgdmFsdWVzIGZvciB0aGUgd2hhdFRvU2hvdyBwYXJhbWV0ZXIuCisgICAgICogVGhleSBh
cmUgdGhlIHNhbWUgYXMgdGhlIHNldCBvZiBwb3NzaWJsZSB0eXBlcyBmb3IgTm9kZSwgYW5kCisg
ICAgICogdGhlaXIgdmFsdWVzIGFyZSBkZXJpdmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNv
cnJlc3BvbmRpbmcKKyAgICAgKiB0byB0aGUgdmFsdWUgb2YgTm9kZVR5cGUgZm9yIHRoZSBlcXVp
dmFsZW50IG5vZGUgdHlwZS4KKyAgICAgKi8KKyAgICBlbnVtIHsKKyAgICAgICAgU0hPV19BTEwg
ICAgICAgICAgICAgICAgICAgICAgID0gMHhGRkZGRkZGRiwKKyAgICAgICAgU0hPV19FTEVNRU5U
ICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMSwKKyAgICAgICAgU0hPV19BVFRSSUJVVEUg
ICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMiwKKyAgICAgICAgU0hPV19URVhUICAgICAgICAg
ICAgICAgICAgICAgID0gMHgwMDAwMDAwNCwKKyAgICAgICAgU0hPV19DREFUQV9TRUNUSU9OICAg
ICAgICAgICAgID0gMHgwMDAwMDAwOCwKKyAgICAgICAgU0hPV19FTlRJVFlfUkVGRVJFTkNFICAg
ICAgICAgID0gMHgwMDAwMDAxMCwKKyAgICAgICAgU0hPV19FTlRJVFkgICAgICAgICAgICAgICAg
ICAgID0gMHgwMDAwMDAyMCwKKyAgICAgICAgU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICAg
ID0gMHgwMDAwMDA0MCwKKyAgICAgICAgU0hPV19DT01NRU5UICAgICAgICAgICAgICAgICAgID0g
MHgwMDAwMDA4MCwKKyAgICAgICAgU0hPV19ET0NVTUVOVCAgICAgICAgICAgICAgICAgID0gMHgw
MDAwMDEwMCwKKyAgICAgICAgU0hPV19ET0NVTUVOVF9UWVBFICAgICAgICAgICAgID0gMHgwMDAw
MDIwMCwKKyAgICAgICAgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQw
MCwKKyAgICAgICAgU0hPV19OT1RBVElPTiAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDgwMAog
ICAgIH07Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmls
dGVyLmlkbAppbmRleCBkZWVlMGFiLi43ZmViYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUZpbHRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIu
aWRsCkBAIC0yMCwxNiArMjAsMTMgQEAKIAogLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoK
IFsKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKLSAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0
LAogICAgIE9iakNQcm90b2NvbCwKLSAgICBDUFBQdXJlSW50ZXJmYWNlLAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBOb2RlRmlsdGVyIHsKKyAgICBKU0dlbmVy
YXRlVG9KU09iamVjdAorXSBjYWxsYmFjayBpbnRlcmZhY2UgTm9kZUZpbHRlciB7CiAgICAgLy8g
Q29uc3RhbnRzIHJldHVybmVkIGJ5IGFjY2VwdE5vZGUKLSAgICBjb25zdCBzaG9ydCAgICAgICAg
ICAgICAgIEZJTFRFUl9BQ0NFUFQgICAgICAgICAgICAgICAgICA9IDE7Ci0gICAgY29uc3Qgc2hv
cnQgICAgICAgICAgICAgICBGSUxURVJfUkVKRUNUICAgICAgICAgICAgICAgICAgPSAyOwotICAg
IGNvbnN0IHNob3J0ICAgICAgICAgICAgICAgRklMVEVSX1NLSVAgICAgICAgICAgICAgICAgICAg
ID0gMzsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxURVJfQUNDRVBUID0gMTsKKyAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBGSUxURVJfUkVKRUNUID0gMjsKKyAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBGSUxURVJfU0tJUCA9IDM7CiAKICAgICAvLyBDb25zdGFudHMgZm9yIHdoYXRUb1No
b3cKICAgICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfQUxMICAgICAgICAgICAgICAg
ICAgICAgICA9IDB4RkZGRkZGRkY7CkBAIC00Niw3ICs0MywxMCBAQAogICAgIGNvbnN0IHVuc2ln
bmVkIGxvbmcgICAgICAgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQw
MDsKICAgICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAg
ICAgICAgICA9IDB4MDAwMDA4MDA7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIHNob3J0
IGFjY2VwdE5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBOb2RlIG4pOwotCisjaWYg
ZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKKyAg
ICBzaG9ydCBhY2NlcHROb2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsK
KyNlbHNlCisgICAgW0N1c3RvbV0gdW5zaWduZWQgc2hvcnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1V
bmRlZmluZWRdIG9wdGlvbmFsIE5vZGUgbik7CisjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcAppbmRleCBlNDc4ZDk0Li43MmM5ZWUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0yOSw3ICsyOSw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc2hvcnQgTm9kZUZpbHRlckNvbmRpdGlvbjo6
YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdAorc2hvcnQgTm9kZUZpbHRl
ckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlKikgY29uc3QKIHsKICAgICByZXR1cm4gTm9kZUZp
bHRlcjo6RklMVEVSX0FDQ0VQVDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRp
dGlvbi5oCmluZGV4IDhiYTM4ZjYuLjJiOWFiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVG
aWx0ZXJDb25kaXRpb24uaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgY2xhc3MgTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5vZGVGaWx0
ZXJDb25kaXRpb24+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk5vZGVGaWx0ZXJD
b25kaXRpb24oKSB7IH0KLSAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpTQzo6RXhl
Y1N0YXRlKiwgTm9kZSopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHRO
b2RlKE5vZGUqKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdEFnZ3JlZ2F0
ZShKU0M6OlNsb3RWaXNpdG9yJikgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmNwcAppbmRleCBlODcwMWVlLi5iNTk5NzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmNwcApAQCAtODksMTEgKzg5LDExIEBAIE5vZGVJdGVyYXRvcjo6fk5vZGVJdGVyYXRvcigp
CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmRldGFjaE5vZGVJdGVyYXRvcih0aGlzKTsKIH0KIAot
UGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiBz
dGF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6
bmV4dE5vZGUoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fZGV0YWNoZWQpIHsKICAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIFJlZlB0cjxOb2RlPiByZXN1bHQ7CkBAIC0x
MDQsOSArMTA0LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKEpT
Qzo6RXhlY1N0YXRlKiBzdGF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICAgICAgLy8gSW4gb3Ro
ZXIgd29yZHMsIEZJTFRFUl9SRUpFQ1QgZG9lcyBub3QgcGFzcyBvdmVyIGRlc2NlbmRhbnRzCiAg
ICAgICAgIC8vIG9mIHRoZSByZWplY3RlZCBub2RlLiBIZW5jZSwgRklMVEVSX1JFSkVDVCBpcyB0
aGUgc2FtZSBhcyBGSUxURVJfU0tJUC4KICAgICAgICAgUmVmUHRyPE5vZGU+IHByb3Zpc2lvbmFs
UmVzdWx0ID0gbV9jYW5kaWRhdGVOb2RlLm5vZGU7Ci0gICAgICAgIGJvb2wgbm9kZVdhc0FjY2Vw
dGVkID0gYWNjZXB0Tm9kZShzdGF0ZSwgcHJvdmlzaW9uYWxSZXN1bHQuZ2V0KCkpID09IE5vZGVG
aWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0
ZWQgPSBhY2NlcHROb2RlKHByb3Zpc2lvbmFsUmVzdWx0LmdldCgpKSA9PSBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUOwogICAgICAgICBpZiAobm9kZVdhc0FjY2VwdGVkKSB7CiAgICAgICAgICAg
ICBtX3JlZmVyZW5jZU5vZGUgPSBtX2NhbmRpZGF0ZU5vZGU7CiAgICAgICAgICAgICByZXN1bHQg
PSBwcm92aXNpb25hbFJlc3VsdC5yZWxlYXNlKCk7CkBAIC0xMTgsMTEgKzExNiwxMSBAQCBQYXNz
UmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
LCBFeGNlcHRpb25Db2RlJiBlYwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCi1Q
YXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRv
cjo6cHJldmlvdXNOb2RlKEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX2RldGFjaGVk
KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0
OwpAQCAtMTMzLDkgKzEzMSw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpwcmV2
aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBFeGNlcHRpb25Db2RlCiAgICAgICAgIC8v
IEluIG90aGVyIHdvcmRzLCBGSUxURVJfUkVKRUNUIGRvZXMgbm90IHBhc3Mgb3ZlciBkZXNjZW5k
YW50cwogICAgICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9kZS4gSGVuY2UsIEZJTFRFUl9SRUpF
Q1QgaXMgdGhlIHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAgICAgIFJlZlB0cjxOb2RlPiBwcm92
aXNpb25hbFJlc3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2RlOwotICAgICAgICBib29sIG5vZGVX
YXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUoc3RhdGUsIHByb3Zpc2lvbmFsUmVzdWx0LmdldCgpKSA9
PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUt
PmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJvb2wgbm9kZVdh
c0FjY2VwdGVkID0gYWNjZXB0Tm9kZShwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZp
bHRlcjo6RklMVEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5vZGVXYXNBY2NlcHRlZCkgewogICAg
ICAgICAgICAgbV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRhdGVOb2RlOwogICAgICAgICAgICAg
cmVzdWx0ID0gcHJvdmlzaW9uYWxSZXN1bHQucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVy
YXRvci5oCmluZGV4IDVmODllNjIuLjQ3MTM5YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRv
ci5oCkBAIC00Myw4ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogICAg
ICAgICB+Tm9kZUl0ZXJhdG9yKCk7CiAKLSAgICAgICAgUGFzc1JlZlB0cjxOb2RlPiBuZXh0Tm9k
ZShKU0M6OkV4ZWNTdGF0ZSosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgUGFzc1JlZlB0cjxO
b2RlPiBwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqLCBFeGNlcHRpb25Db2RlJik7CisgICAg
ICAgIFBhc3NSZWZQdHI8Tm9kZT4gbmV4dE5vZGUoRXhjZXB0aW9uQ29kZSYpOworICAgICAgICBQ
YXNzUmVmUHRyPE5vZGU+IHByZXZpb3VzTm9kZShFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIHZv
aWQgZGV0YWNoKCk7CiAKICAgICAgICAgTm9kZSogcmVmZXJlbmNlTm9kZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVmZXJlbmNlTm9kZS5ub2RlLmdldCgpOyB9CkBAIC01MywxMSArNTMsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9y
ZSBhbnkgbm9kZSBpcyByZW1vdmVkIGZyb20gdGhlIGRvY3VtZW50IHRyZWUuCiAgICAgICAgIHZv
aWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYpOwogCi0gICAgICAgIC8vIERvIG5vdCBjYWxsIHRo
ZXNlIGZ1bmN0aW9ucy4gVGhleSBhcmUganVzdCBzY2FmZm9sZGluZyB0byBzdXBwb3J0IHRoZSBP
YmplY3RpdmUtQyBiaW5kaW5ncy4KLSAgICAgICAgLy8gVGhleSBvcGVyYXRlIGluIHRoZSBtYWlu
IHRocmVhZCBub3JtYWwgd29ybGQsIGFuZCB0aGV5IHN3YWxsb3cgSlMgZXhjZXB0aW9ucy4KLSAg
ICAgICAgUGFzc1JlZlB0cjxOb2RlPiBuZXh0Tm9kZShFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1
cm4gbmV4dE5vZGUoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIHJl
ZmVyZW5jZU5vZGUoKSksIGVjKTsgfQotICAgICAgICBQYXNzUmVmUHRyPE5vZGU+IHByZXZpb3Vz
Tm9kZShFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gcHJldmlvdXNOb2RlKGV4ZWNTdGF0ZUZy
b21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCByZWZlcmVuY2VOb2RlKCkpLCBlYyk7IH0K
LQogICAgIHByaXZhdGU6CiAgICAgICAgIE5vZGVJdGVyYXRvcihQYXNzUmVmUHRyPE5vZGU+LCB1
bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhw
YW5kRW50aXR5UmVmZXJlbmNlcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKaW5k
ZXggNWNmNzhkZi4uYTk5NTBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKQEAg
LTMwLDggKzMwLDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByZWZlcmVuY2VOb2Rl
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBvaW50ZXJCZWZvcmVSZWZlcmVuY2VO
b2RlOwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBSYWlzZXNFeGNlcHRpb25dIE5vZGUg
bmV4dE5vZGUoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIFJhaXNlc0V4Y2VwdGlvbl0g
Tm9kZSBwcmV2aW91c05vZGUoKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBOb2RlIG5leHROb2Rl
KCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZSBwcmV2aW91c05vZGUoKTsKICAgICB2b2lk
IGRldGFjaCgpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNh
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcAppbmRleCAxYzIyNzA1Li43
NjNmMTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcApAQCAtMzgsNyArMzgsNyBAQCBOb2Rl
SXRlcmF0b3JCYXNlOjpOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUs
IHVuc2lnbmVkIGxvbmcgd2hhdAogewogfQogCi1zaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2Nl
cHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgTm9kZSogbm9kZSkgY29uc3QKK3Nob3J0IE5v
ZGVJdGVyYXRvckJhc2U6OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICAvLyBG
SVhNRTogVG8gaGFuZGxlIFhNTCBwcm9wZXJseSB3ZSB3b3VsZCBoYXZlIHRvIGNoZWNrIG1fZXhw
YW5kRW50aXR5UmVmZXJlbmNlcy4KIApAQCAtNDgsNyArNDgsNyBAQCBzaG9ydCBOb2RlSXRlcmF0
b3JCYXNlOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgTm9kZSogbm9kZSkgY29u
c3QKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9TS0lQOwogICAgIGlmICghbV9m
aWx0ZXIpCiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwotICAgIHJl
dHVybiBtX2ZpbHRlci0+YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZSk7CisgICAgcmV0dXJuIG1fZmls
dGVyLT5hY2NlcHROb2RlKG5vZGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJhdmVyc2FsLmgKaW5kZXggMTVmMDllMi4uNmFjZmJkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJz
YWwuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcm90ZWN0
ZWQ6CiAgICAgICAgIE5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+LCBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMpOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwg
Tm9kZSopIGNvbnN0OworICAgICAgICBzaG9ydCBhY2NlcHROb2RlKE5vZGUqKSBjb25zdDsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxOb2RlPiBtX3Jvb3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVdhbGtlci5jcHAKaW5kZXggZGYwMzRiMS4uMDU4MzYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fs
a2VyLmNwcApAQCAtNTQsMjggKzU0LDI0IEBAIGlubGluZSBOb2RlKiBUcmVlV2Fsa2VyOjpzZXRD
dXJyZW50KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKICAgICByZXR1cm4gbV9jdXJyZW50LmdldCgp
OwogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSkKK05vZGUqIFRyZWVXYWxrZXI6OnBhcmVudE5vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiBu
b2RlID0gbV9jdXJyZW50OwogICAgIHdoaWxlIChub2RlICE9IHJvb3QoKSkgewogICAgICAgICBu
b2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAoIW5vZGUpCi0gICAgICAgICAg
ICByZXR1cm4gMDsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUo
c3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQo
KSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9B
Q0NFUFQpCiAgICAgICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAg
ICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVl
V2Fsa2VyOjpmaXJzdENoaWxkKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxr
ZXI6OmZpcnN0Q2hpbGQoKQogewogICAgIGZvciAoUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJl
bnQtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgKSB7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1
bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYm
IHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBz
aG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAg
c3dpdGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICBjYXNlIE5vZGVGaWx0ZXI6
OkZJTFRFUl9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gbm9kZS5yZWxlYXNl
KCk7CkBAIC05NiwxOSArOTIsMTcgQEAgTm9kZSogVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZChKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBDb250YWluZXJO
b2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgICAgICBpZiAoIXBhcmVu
dCB8fCBwYXJlbnQgPT0gcm9vdCgpIHx8IHBhcmVudCA9PSBtX2N1cnJlbnQpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
ICAgICBub2RlID0gcGFyZW50OwogICAgICAgICB9IHdoaWxlIChub2RlKTsKICAgICB9Ci0gICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6Omxh
c3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpsYXN0Q2hp
bGQoKQogewogICAgIGZvciAoUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQtPmxhc3RDaGls
ZCgpOyBub2RlOyApIHsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5v
ZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHNob3J0IGFjY2VwdE5v
ZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBzd2l0Y2ggKGFjY2Vw
dE5vZGVSZXN1bHQpIHsKICAgICAgICAgICAgIGNhc2UgTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQ
VDoKICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBub2RlLnJlbGVhc2UoKTsKQEAgLTEyOSwy
MyArMTIzLDIxIEBAIE5vZGUqIFRyZWVXYWxrZXI6Omxhc3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQg
PSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgICAgICBpZiAoIXBhcmVudCB8fCBwYXJlbnQg
PT0gcm9vdCgpIHx8IHBhcmVudCA9PSBtX2N1cnJlbnQpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICBub2RlID0g
cGFyZW50OwogICAgICAgICB9IHdoaWxlIChub2RlKTsKICAgICB9Ci0gICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGlu
ZyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxp
bmcoKQogewogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50OwogICAgIGlmIChub2Rl
ID09IHJvb3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHdoaWxlICgxKSB7CiAgICAgICAgIGZvciAoUmVmUHRyPE5vZGU+IHNpYmxpbmcgPSBub2Rl
LT5wcmV2aW91c1NpYmxpbmcoKTsgc2libGluZzsgKSB7Ci0gICAgICAgICAgICBzaG9ydCBhY2Nl
cHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgc2libGluZy5nZXQoKSk7Ci0gICAgICAg
ICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5v
ZGUoc2libGluZy5nZXQoKSk7CiAgICAgICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQp
IHsKICAgICAgICAgICAgICAgICBjYXNlIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ6CiAgICAg
ICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IHNpYmxpbmcucmVsZWFzZSgpOwpAQCAtMTY0LDI1
ICsxNTYsMjEgQEAgTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSkKICAgICAgICAgfQogICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgp
OwogICAgICAgICBpZiAoIW5vZGUgfHwgbm9kZSA9PSByb290KCkpCi0gICAgICAgICAgICByZXR1
cm4gMDsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUs
IG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigp
KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAg
ICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQp
Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0
YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcoKQogewogICAgIFJlZlB0cjxOb2Rl
PiBub2RlID0gbV9jdXJyZW50OwogICAgIGlmIChub2RlID09IHJvb3QoKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHdoaWxlICgxKSB7CiAgICAgICAg
IGZvciAoUmVmUHRyPE5vZGU+IHNpYmxpbmcgPSBub2RlLT5uZXh0U2libGluZygpOyBzaWJsaW5n
OyApIHsKLSAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0
YXRlLCBzaWJsaW5nLmdldCgpKTsKLSAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFk
RXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBzaG9y
dCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzaWJsaW5nLmdldCgpKTsKICAgICAgICAg
ICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAgICAgIGNhc2UgTm9k
ZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDoKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0g
c2libGluZy5yZWxlYXNlKCk7CkBAIC0yMDEsMzEgKzE4OSwyNSBAQCBOb2RlKiBUcmVlV2Fsa2Vy
OjpuZXh0U2libGluZyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgICAgIH0KICAgICAgICAg
bm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlIHx8IG5vZGUgPT0g
cm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVS
ZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRl
ICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBh
Y2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBO
b2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6OnByZXZp
b3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91
c05vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50OwogICAgIHdoaWxl
IChub2RlICE9IHJvb3QoKSkgewogICAgICAgICB3aGlsZSAoTm9kZSogcHJldmlvdXNTaWJsaW5n
ID0gbm9kZS0+cHJldmlvdXNTaWJsaW5nKCkpIHsKICAgICAgICAgICAgIG5vZGUgPSBwcmV2aW91
c1NpYmxpbmc7Ci0gICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9k
ZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhh
ZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgc2hv
cnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgICAg
ICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgd2hpbGUgKE5vZGUqIGxhc3RDaGls
ZCA9IG5vZGUtPmxhc3RDaGlsZCgpKSB7CiAgICAgICAgICAgICAgICAgbm9kZSA9IGxhc3RDaGls
ZDsKLSAgICAgICAgICAgICAgICBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwg
bm9kZS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAg
YWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0yMzUsMjkgKzIxNywy
NSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChub2RlID09IHJvb3QoKSkK
LSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAg
aWYgKCFwYXJlbnQpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICBub2RlID0gcGFyZW50OwotICAgICAgICBzaG9ydCBhY2NlcHROb2Rl
UmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0
ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAg
ICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAg
ICAgICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAgICAgfQotICAg
IHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpu
ZXh0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpuZXh0Tm9k
ZSgpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiBDaGlsZHJlbjoKICAg
ICB3aGlsZSAoTm9kZSogZmlyc3RDaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKSkgewogICAgICAg
ICBub2RlID0gZmlyc3RDaGlsZDsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFj
Y2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUt
PmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHNo
b3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBp
ZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQogICAgICAg
ICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAgICAgICBpZiAoYWNj
ZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUKQpAQCAtMjY1LDkgKzI0
Myw3IEBAIENoaWxkcmVuOgogICAgIH0KICAgICB3aGlsZSAoTm9kZSogbmV4dFNpYmxpbmcgPSBO
b2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbigqbm9kZSwgcm9vdCgpKSkgewogICAg
ICAgICBub2RlID0gbmV4dFNpYmxpbmc7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQg
PSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0
YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAg
ICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAg
ICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAgICAgICAgaWYg
KGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1NLSVApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuaAppbmRleCBjNDQwYzI5Li42YTNmZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2Vy
LmgKQEAgLTQ1LDIzICs0NSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUq
IGN1cnJlbnROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50LmdldCgpOyB9CiAgICAgICAg
IHZvaWQgc2V0Q3VycmVudE5vZGUoUGFzc1JlZlB0cjxOb2RlPiwgRXhjZXB0aW9uQ29kZSYpOwog
Ci0gICAgICAgIE5vZGUqIHBhcmVudE5vZGUoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9k
ZSogZmlyc3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBsYXN0Q2hpbGQo
SlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogcHJldmlvdXNTaWJsaW5nKEpTQzo6RXhl
Y1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIG5leHRTaWJsaW5nKEpTQzo6RXhlY1N0YXRlKik7Ci0g
ICAgICAgIE5vZGUqIHByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2Rl
KiBuZXh0Tm9kZShKU0M6OkV4ZWNTdGF0ZSopOwotCi0gICAgICAgIC8vIERvIG5vdCBjYWxsIHRo
ZXNlIGZ1bmN0aW9ucy4gVGhleSBhcmUganVzdCBzY2FmZm9sZGluZyB0byBzdXBwb3J0IHRoZSBP
YmplY3RpdmUtQyBiaW5kaW5ncy4KLSAgICAgICAgLy8gVGhleSBvcGVyYXRlIGluIHRoZSBtYWlu
IHRocmVhZCBub3JtYWwgd29ybGQsIGFuZCB0aGV5IHN3YWxsb3cgSlMgZXhjZXB0aW9ucy4KLSAg
ICAgICAgTm9kZSogcGFyZW50Tm9kZSgpIHsgcmV0dXJuIHBhcmVudE5vZGUoZXhlY1N0YXRlRnJv
bU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAg
ICAgIE5vZGUqIGZpcnN0Q2hpbGQoKSB7IHJldHVybiBmaXJzdENoaWxkKGV4ZWNTdGF0ZUZyb21O
b2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQotICAgICAg
ICBOb2RlKiBsYXN0Q2hpbGQoKSB7IHJldHVybiBsYXN0Q2hpbGQoZXhlY1N0YXRlRnJvbU5vZGUo
bWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5v
ZGUqIHByZXZpb3VzU2libGluZygpIHsgcmV0dXJuIHByZXZpb3VzU2libGluZyhleGVjU3RhdGVG
cm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAg
ICAgICAgTm9kZSogbmV4dFNpYmxpbmcoKSB7IHJldHVybiBuZXh0U2libGluZyhleGVjU3RhdGVG
cm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAg
ICAgICAgTm9kZSogcHJldmlvdXNOb2RlKCkgeyByZXR1cm4gcHJldmlvdXNOb2RlKGV4ZWNTdGF0
ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQot
ICAgICAgICBOb2RlKiBuZXh0Tm9kZSgpIHsgcmV0dXJuIG5leHROb2RlKGV4ZWNTdGF0ZUZyb21O
b2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQorICAgICAg
ICBOb2RlKiBwYXJlbnROb2RlKCk7CisgICAgICAgIE5vZGUqIGZpcnN0Q2hpbGQoKTsKKyAgICAg
ICAgTm9kZSogbGFzdENoaWxkKCk7CisgICAgICAgIE5vZGUqIHByZXZpb3VzU2libGluZygpOwor
ICAgICAgICBOb2RlKiBuZXh0U2libGluZygpOworICAgICAgICBOb2RlKiBwcmV2aW91c05vZGUo
KTsKKyAgICAgICAgTm9kZSogbmV4dE5vZGUoKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFRy
ZWVXYWxrZXIoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBQYXNz
UmVmUHRyPE5vZGVGaWx0ZXI+LCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVXYWxrZXIuaWRsCmluZGV4IDI2M2FlZmEuLjQ4MDllZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5pZGwKQEAgLTI5LDEyICsyOSwxMiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM7ICAgICAgICAKICAgICBbU2V0dGVyUmFp
c2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgTm9kZSBjdXJyZW50Tm9kZTsKIAotICAgIFtDYWxsV2l0
aD1TY3JpcHRTdGF0ZV0gTm9kZSBwYXJlbnROb2RlKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0
YXRlXSBOb2RlIGZpcnN0Q2hpbGQoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUg
bGFzdENoaWxkKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIHByZXZpb3VzU2li
bGluZygpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBuZXh0U2libGluZygpOwot
ICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBwcmV2aW91c05vZGUoKTsKLSAgICBbQ2Fs
bFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgbmV4dE5vZGUoKTsKKyAgICBOb2RlIHBhcmVudE5vZGUo
KTsKKyAgICBOb2RlIGZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlIGxhc3RDaGlsZCgpOworICAgIE5v
ZGUgcHJldmlvdXNTaWJsaW5nKCk7CisgICAgTm9kZSBuZXh0U2libGluZygpOworICAgIE5vZGUg
cHJldmlvdXNOb2RlKCk7CisgICAgTm9kZSBuZXh0Tm9kZSgpOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260262</attachid>
            <date>2015-08-30 18:16:43 -0700</date>
            <delta_ts>2015-08-30 18:33:29 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>NodeFilter_callback_interface_wip.patch</filename>
            <type>text/plain</type>
            <size>525138</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1m
aWx0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2Nl
cHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQKaW5kZXggY2E1ZGE4NDEuLmVlN2QyMWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0
Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAgUEFTUyB3YWxrZXIu
Zmlyc3RDaGlsZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwogUEFTUyB3YWxrZXIu
bmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAogVGVzdGluZyB3aXRo
IG9iamVjdCBsYWNraW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hp
bGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBu
b3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgp
OyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyB3YWxrZXIuY3Vy
cmVudE5vZGUuaWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2Nl
cHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAn
cm9vdCcKIAogVGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlvbiBhY2NlcHROb2Rl
IHByb3BlcnR5Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5j
dGlvbi4KK1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKLVBB
U1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0
ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fs
a2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQ
QVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rpbmcgd2l0aCBmdW5j
dGlvbiBoYXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nv
bnN0YW50cy1leHBlY3RlZC50eHQKaW5kZXggNDdmYzViMi4uYmZkNjU3MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC0yNCwyMiArMjQsNiBAQCBQ
QVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0lOSEVSSVQgc2hvdWxkIGJlIDAgYW5kIGlzLgogUEFT
Uzogd2luZG93LkNTU1ZhbHVlLkNTU19QUklNSVRJVkVfVkFMVUUgc2hvdWxkIGJlIDEgYW5kIGlz
LgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNUIHNob3VsZCBiZSAyIGFuZCBp
cy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIHNob3VsZCBiZSAzIGFuZCBpcy4K
LVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91bGQgYmUgMSBhbmQgaXMuCi1QQVNT
OiBub2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9k
ZUZpbHRlci5GSUxURVJfU0tJUCBzaG91bGQgYmUgMyBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVy
LlNIT1dfQUxMIHNob3VsZCBiZSA0Mjk0OTY3Mjk1IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX1RFWFQg
c2hvdWxkIGJlIDQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0NEQVRBX1NFQ1RJT04g
c2hvdWxkIGJlIDggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0VOVElUWV9SRUZFUkVO
Q0Ugc2hvdWxkIGJlIDE2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19FTlRJVFkgc2hv
dWxkIGJlIDMyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19QUk9DRVNTSU5HX0lOU1RS
VUNUSU9OIHNob3VsZCBiZSA2NCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQ09NTUVO
VCBzaG91bGQgYmUgMTI4IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCBz
aG91bGQgYmUgMjU2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBF
IHNob3VsZCBiZSA1MTIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UIHNob3VsZCBiZSAxMDI0IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19OT1RB
VElPTiBzaG91bGQgYmUgMjA0OCBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuTm9kZUZpbHRlci5GSUxU
RVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5Ob2RlRmlsdGVyLkZJ
TFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgogUEFTUzogd2luZG93Lk5vZGVGaWx0ZXIu
RklMVEVSX1NLSVAgc2hvdWxkIGJlIDMgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbAppbmRleCBkY2UyNTg4Li4xOTViYmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9jb25zdGFudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhLCBiKQogICAgIHByaW50
KG1lc3NhZ2UsIGNvbG9yKTsKIH0KIAotdmFyIGNzc1J1bGUsIGNzc1ZhbHVlLCBub2RlRmlsdGVy
LCBldmVudDsKK3ZhciBjc3NSdWxlLCBjc3NWYWx1ZSwgZXZlbnQ7CiAKIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpAQCAtNjYsMzQgKzY2LDYgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICBzaG91bGRCZSgid2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNU
IiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIiwgMyk7CiAK
LSAgICB2YXIgbm9kZUl0ZXJhdG9yOwotICAgIHRyeSB7Ci0gICAgICAgIG5vZGVJdGVyYXRvciA9
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7IHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7IH0sIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwotICAg
IH0gY2F0Y2goZSkgewotICAgICAgICBub2RlSXRlcmF0b3IgPSBuZXcgT2JqZWN0KCk7Ci0gICAg
fQotICAgIAotICAgIG5vZGVGaWx0ZXIgPSBub2RlSXRlcmF0b3IuZmlsdGVyOwotICAgIHNob3Vs
ZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQiLCAxKTsKLSAgICBzaG91bGRCZSgibm9kZUZp
bHRlci5GSUxURVJfUkVKRUNUIiwgMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuRklMVEVS
X1NLSVAiLCAzKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0FMTCIsIDB4RkZGRkZG
RkYpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRUxFTUVOVCIsIDB4MDAwMDAwMDEp
OwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFIiwgMHgwMDAwMDAwMik7
Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19URVhUIiwgMHgwMDAwMDAwNCk7Ci0gICAg
c2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OIiwgMHgwMDAwMDAwOCk7Ci0g
ICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFlfUkVGRVJFTkNFIiwgMHgwMDAwMDAx
MCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFkiLCAweDAwMDAwMDIwKTsK
LSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iLCAw
eDAwMDAwMDQwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0NPTU1FTlQiLCAweDAw
MDAwMDgwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UIiwgMHgwMDAw
MDEwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBFIiwgMHgw
MDAwMDIwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9GUkFHTUVO
VCIsIDB4MDAwMDA0MDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfTk9UQVRJT04i
LCAweDAwMDAwODAwKTsKLQogICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5GSUxURVJf
QUNDRVBUIiwgMSk7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5Ob2RlRmlsdGVyLkZJTFRFUl9SRUpF
Q1QiLCAyKTsKICAgICBzaG91bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIuRklMVEVSX1NLSVAiLCAz
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbAppbmRl
eCA5N2QyZmFkLi4wYjM5ZGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy5odG1sCkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRy
eSB7CiAgICAgICBub2RlRmlsdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgZnVuY3Rpb24gKCkge30sIGZhbHNlKS5maWx0
ZXI7CiAgICAgfSBjYXRjaChlKSB7fQotICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5w
cm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOworICAgIHNob3VsZEJl
KCJGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOwog
CiAgICAgb3JpZ2luYWxOb2RlUHJvdG90eXBlID0gd2luZG93Lk5vZGUucHJvdG90eXBlOwogICAg
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWdjLmh0bWwKaW5kZXggMDY0OWFkMi4u
YTIwNGM0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2Mu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sCkBAIC0z
LDggKzMsOCBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgIAotdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgMCwgZmFsc2UpOwotdmFyIHdhbGtl
ciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAwLCBmYWxzZSk7Cit2YXIgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsLCBmYWxzZSk7Cit2
YXIgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwsIGZhbHNlKTsKIAogLy8gY3JlYXRlIGxvdHMgb2Ygb2JqZWN0
cyB0byBmb3JjZSBhIGdhcmJhZ2UgY29sbGVjdGlvbgogIHZhciBpID0gMDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDVlNTQ2ODYuLmQ0YTk4YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMzksOCArMzksNiBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJs
ZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDBdCiAqIG5hbWUKIFtDb25maWd1cmFi
bGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiBOb2Rl
RmlsdGVyXQotKiBwcm90b3R5cGUKLVtDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBm
YWxzZSwgd3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogW29iamVjdCBOb2RlRmlsdGVyUHJvdG90eXBl
XV0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0CmluZGV4IGQyMTg2NDUuLmU3N2M0YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTE4OTAsNDEg
KzE4OTAsNDEgQEAgUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlMKIFBBU1MgVHJlZVdhbGtlciBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRl
ci5TSE9XX0FMTCwgbnVsbCwgZmFsc2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmlvdXNO
b2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoOSkgCiBQQVNTIFRyZWVXYWxrZXIgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVGaWx0ZXIuU0hP
V19BTEwsIG51bGwsIGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHROb2RlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoMTApIAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9mYWxzZTogTm9kZUZpbHRl
ciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6
IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJw
cm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1JF
SkVDVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29u
c3RhbnQgRklMVEVSX1JFSkVDVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRf
ZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IEZJTFRFUl9SRUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0FMTCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3Nl
cnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVy
dHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2Rl
RmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBvYmpl
Y3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVy
IGludGVyZmFjZTogY29uc3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBv
biBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19URVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9k
ZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBm
YWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19U
RVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1G
QUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04g
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIG9iamVjdCAKLUZB
SUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBv
biBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hv
dWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRy
dWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVS
RU5DRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEg
InByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19QUk9D
RVNTSU5HX0lOU1RSVUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3Qg
aGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJ
T04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEg
InByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9D
VU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfRE9DVU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0
X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5
IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0RPQ1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBO
b2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBFIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBO
b2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVk
IGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9X
X0RPQ1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UX0ZSQUdNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxz
ZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBl
Y3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19ET0NVTUVOVF9GUkFHTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJm
YWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9U
QVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9k
ZShOb2RlKSBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3Rv
dHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShO
b2RlKSAKIEZBSUwgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIERP
TVRva2VuTGlzdCBleHBlY3RlZCAiW29iamVjdCBGdW5jdGlvbl0iIGJ1dCBnb3QgIltvYmplY3Qg
RE9NVG9rZW5MaXN0Q29uc3RydWN0b3JdIgogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fs
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9E
b2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA3MmVhZDUzLi4zOGVm
MDA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vbm9kZXMvRG9j
dW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0ZWQu
dHh0CkBAIC0zLDUgKzMsNSBAQCBQQVNTIFJlcXVpcmVkIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVl
V2Fsa2VyIHNob3VsZCBiZSByZXF1aXJlZC4KIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRzIHRvIGNy
ZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgxIHBhc3NlZCkuIAogUEFTUyBPcHRp
b25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDIg
cGFzc2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNo
b3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIG51bGwpLiAKLUZBSUwgT3B0aW9uYWwgYXJndW1l
bnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgzIHBhc3NlZCwgZnVu
Y3Rpb24pLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSBv
cHRpb25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4
cGVjdGVkLnR4dAppbmRleCA0ZDU5ODZjNC4uOGE1NmQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLWV4cGVjdGVkLnR4dApAQCAtNSw3NDMgKzUsNzQzIEBAIFBBU1MgY3JlYXRlTm9kZUl0ZXJh
dG9yKCkgd2l0aCBudWxsIGFzIGFyZ3VtZW50cwogRkFJTCBjcmVhdGVOb2RlSXRlcmF0b3IoKSB3
aXRoIHVuZGVmaW5lZCBhcyBhcmd1bWVudHMgYXNzZXJ0X2VxdWFsczogd2hhdFRvU2hvdyBleHBl
Y3RlZCA0Mjk0OTY3Mjk1IGJ1dCBnb3QgMAogUEFTUyBQcm9wYWdhdGUgZXhjZXB0aW9uIGZyb20g
ZmlsdGVyIGZ1bmN0aW9uIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
YywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
YywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRD
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0
eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5
cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3RE
aXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0
ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25D
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENv
bW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Nm
cmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJz
YWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9k
b20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CmluZGV4IDlhYmVkMzAuLjY1NTc4
NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwv
VHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
ZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3NDIgKzEsNzQzIEBA
CiAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3Vt
ZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJUcmVlV2Fs
a2VyIHRlc3RzIiBidXQgZ290IG51bGwKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQg
VGV4dCBub2RlICJXeHl6YWJjZCIgYnV0IGdvdCBudWxsCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3Rl
ZCBUZXh0IG5vZGUgIkVmZ2hpamtsIiBidXQgZ290IENvbW1lbnQgbm9kZSA8IS0tIkNvbW1lbnRl
ciIgYW5kICJjb21tZW50YXRvciIgbWVhbiBkaWZmZXJlbnQgdGhpbmdzLiAgSSd2Li4uLS0+CiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJkbyByZSBt
aSBmYSBzbyBsYSB0aSIgYnV0IGdvdCBDb21tZW50IG5vZGUgPCEtLUkgbWFsaWNpb3VzbHkgY3Jl
YXRlZCBhIGNvbW1lbnQgdGhhdCB3aWxsIGJyZWFrIGluY2F1dGlvdS4uLi0tPgogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRU
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Y29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVz
dERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRT
aWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJJamtsbW5vcAorIiBidXQgZ290IENvbW1lbnQg
bm9kZSA8IS0tQWxwaGFiZXQgc291cD8tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVt
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50
LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDYwNzBlMC4uZDc3NjVj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjEsNyArMTE2MSw2IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05v
ZGVJdGVyYXRvckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVPclN0cmluZy5jcHAK
QEAgLTE0MzcsNyArMTQzNiw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vTmFtZWRG
bG93Q29sbGVjdGlvbi5jcHAKICAgICBkb20vTmFtZWROb2RlTWFwLmNwcAogICAgIGRvbS9Ob2Rl
LmNwcAotICAgIGRvbS9Ob2RlRmlsdGVyLmNwcAogICAgIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9u
LmNwcAogICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCiAgICAgZG9tL05vZGVPclN0cmluZy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4
IDA1MDk2NGYuLmI3NjJkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagpAQCAtMTQ1NTcsMjAgKzE0NTU3LDYgQEAKICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTm9kZUZpbHRlci5jcHAiPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2Vf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE5vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE4
NDc5LDIwICsxODQ2NSw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCI+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDdXN0
b20uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAg
LTIyNDk3LDcgKzIyNDY5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXEpTTXV0YXRpb25DYWxsYmFjay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xKU05vZGVPclN0cmluZy5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xT
Y2hlZHVsZWRBY3Rpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA4YzQ4MTczLi5lMWY5ZWIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCkBAIC00NDA0LDkgKzQ0MDQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJpbmRp
bmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIj4KLSAgICAgIDxGaWx0
ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5jcHAiPgogICAgICAg
PEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTE0OTgs
OSArMTE0OTUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNO
b2RlQ3VzdG9tLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmgiPgotICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgot
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNc
SlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYjRlNzMuLjhlMjQ0MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2
ODQsNiArMjY4NCw3IEBACiAJCTgzMDAzMEY1MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5lcmljQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODMwMDMwRjMxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1M
Q29sbGVjdGlvbi5jcHAgKi87IH07CiAJCTgzMDAzMEY2MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5l
cmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzMDAzMEY0MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVk
SFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODMwMDMwRjgxQjdEM0I3ODAwRUQzQUFDIC8qIENh
Y2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rp
b24uaCAqLzsgfTsKKwkJODMwNkVGRjExQjhCQ0VBNTAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMw
NkVGRjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwICovOyB9OwogCQk4
MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzMzE5RDhFNTUx
MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggKi87IH07CiAJCTgzMkI4NDM2MTlE
OEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQjg0MzUxOUQ4RTU3NDAwQjI2MDU1
IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgKi87IH07CiAJCTgzNDhCRkFCMUI4NTcyOTgw
MDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM0OEJGQTkxQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29s
bGVjdGlvbi5jcHAgKi87IH07CkBAIC0yNjk3LDYgKzI2OTgsNyBAQAogCQk4Mzg2QTk3MDE5RjYx
RTRGMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzODZBOTZFMTlGNjFFNEYwMEUxRUM0QSAvKiBTdHlsZUJ1
aWxkZXIuY3BwICovOyB9OwogCQk4MzlBQUZFQzFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM5QUFGRUExQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmNwcCAqLzsgfTsKIAkJ
ODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQjFBMEMwQzhEMDA2MDVG
OTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsgfTsKKwkJODNCMkQxNzUxQjhCQ0Q2QTAwQTAyRTQ3
IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVy
LmggKi87IH07CiAJCTgzQjk2ODdCMTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJDb252
ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
Qjk2ODc5MTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCAqLzsgfTsK
IAkJODNDMDVBNUExQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5j
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNDMDVBNTgxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlv
bnMuY3BwICovOyB9OwogCQk4M0MwNUE1QjFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNDMDVBNTkxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9y
dGhhbmRGdW5jdGlvbnMuaCAqLzsgfTsKQEAgLTI3MTgsNiArMjcyMCw3IEBACiAJCTgzQzFENDM0
MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzFENDIyMTc4RDVBQjQw
MDE0MUU2OCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaCAqLzsgfTsKIAkJODNDMUQ0
MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzFENDIzMTc4RDVBQjQwMDE0MUU2
OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmggKi87IH07CiAJCTgzQzFENDM2MTc4RDVBQjUwMDE0
MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyNDE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNl
Z01vdmV0b1JlbC5oICovOyB9OworCQk4M0YxMjA2QjFCOEMxMDQ3MDBENzVGNjMgLyogSlNOb2Rl
RmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3Bw
ICovOyB9OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0
MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyB9OwogCQk4NDE5RDJB
ODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE1MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovOyB9OwogCQk4NDE5RDJB
OTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CkBAIC0yOTA5LDcgKzI5
MTIsNiBAQAogCQk4NTQyQTc5ODBBRTVDOTQzMDBERjU4REYgLyogSlNTVkdOdW1iZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3NEQxRjMwQURF
NjEyMjAwNENCQTExIC8qIEpTU1ZHTnVtYmVyLmNwcCAqLzsgfTsKIAkJODU0MkE3OTkwQUU1Qzk0
NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGMjBBREU2MTIyMDA0Q0JBMTEg
LyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLzsgfTsKIAkJODU0MkE3OUEwQUU1Qzk0
NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NzREMUYxMEFERTYxMjIwMDRDQkEx
MSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi87IH07Ci0JCTg1NEZFNzMwMEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmls
dGVyLmNwcCAqLzsgfTsKIAkJODU0RkU3MzEwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI3
MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi87IH07CiAJCTg1NEZFNzMyMEEyMjk3
QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI4MEEyMjk3QkUwMDU4RDdBRCAvKiBO
b2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsgfTsKIAkJODU0RkU3MzMwQTIyOTdCRTAwNThEN0FE
IC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI5MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29u
ZGl0aW9uLmggKi87IH07CkBAIC01NDg4LDkgKzU0OTAsNiBAQAogCQlCQ0IxNkMyODA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFhTTFN0eWxlU2hlZXQuaCAqLzsgfTsKIAkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAgKi87IH07CiAJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNCNzczNjEw
QzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM1RTBDMTc4NTNEMDAxMzJC
QTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsgfTsKLQkJQkNCNzczNjIwQzE3ODUz
RDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNzczNUYwQzE3ODUzRDAwMTMyQkE0IC8qIEpT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oICovOyB9OwotCQlCQ0I3NzM2MzBDMTc4NTNEMDAxMzJCQTQg
LyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJD
dXN0b20uY3BwICovOyB9OwogCQlCQ0I5MkQ0RjEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2Vs
aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I5
MkQ0RTEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNCQjhBQjkxM0YxQUZCMDAwNzM0REYw
IC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0JCOEFCQTEzRjFB
RkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JCOEFCNjEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50
ZXJ2YWxUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTEwMDUzLDYgKzEwMDUyLDcgQEAKIAkJODMwMDMwRjMxQjdEMzNBNjAwRUQzQUFDIC8q
IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzAwMzBGNDFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdl
bmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSFRNTENvbGxlY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMwNkVGRjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5h
dGl2ZU5vZGVGaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmF0aXZlTm9kZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMkI4
NDMzMTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMkI4NDM1MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmlt
YXRlRWxlbWVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODM0OEJGQTkxQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGFzc0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwOTAsNiArMTAwOTAsOCBAQAogCQk4M0MxRDQyNDE3
OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTW92ZXRvUmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRDI2RDNDMUFGRENDNTAwMDFCMzg3MyAvKiBDaGlsZE5vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IENoaWxkTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDI2RDNE
MUFGRENDNTAwMDFCMzg3MyAvKiBQYXJlbnROb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXJlbnROb2RlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8q
IE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0
aXZlTm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0YxMjA2QTFC
OEMxMDM2MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0
ZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0
cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5RDJBNTEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRo
Qnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
UGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MDI2NSw3ICsxMDI2Nyw2IEBACiAJCTg1NDA3NTY2MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1M
T3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRN
TE9wdGlvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0MDc1Njcw
QUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxPcHRpb25FbGVtZW50Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2ODBBRDZDQkY5MDA2MjBDNTcgLyogRE9N
SFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4NTRGRTcyNjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZUZpbHRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZFNzI3MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2Rl
RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlRmlsdGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZFNzI4MEEyMjk3QkUwMDU4RDdBRCAv
KiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODU0RkU3MjkwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVGaWx0ZXJDb25kaXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDk1LDkgKzEzMDk2LDYgQEAKIAkJQkNC
MTZDMEYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFhTTFN0eWxlU2hlZXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJl
c291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRp
bmcgPSAwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNw
cDsgfTsKIAkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0I3NzM1RTBDMTc4NTNEMDAxMzJC
QTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU05vZGVGaWx0ZXJD
b25kaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNCNzczNjAwQzE3ODUz
RDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNCOTJENEUxMjkzNTUwQjAwQzgzODdGIC8qIEZvbnRCYXNlbGluZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QmFzZWxpbmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCQjhBQjUxM0YxQUZCMDAwNzM0REYwIC8qIFBPRElu
dGVydmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBPREludGVydmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAv
KiBQT0RJbnRlcnZhbFRyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9E
SW50ZXJ2YWxUcmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTM5MSw2ICsy
MTM4OSw3IEBACiAJCQkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hl
bGwuY3BwICovLAogCQkJCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1No
ZWxsLmggKi8sCiAJCQkJNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5o
ICovLAorCQkJCTgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20u
Y3BwICovLAogCQkJCTdDOTFBMzhEMUI0OThBQkUwMDNGOUVGQSAvKiBKU05vZGVPclN0cmluZy5j
cHAgKi8sCiAJCQkJN0M5MUEzOEUxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9kZU9yU3RyaW5nLmgg
Ki8sCiAJCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAq
LywKQEAgLTIxNTc0LDcgKzIxNTczLDYgQEAKIAkJCQkwNzM3OTRFNzE5RUUzMzVDMDBFNUEwNDUg
LyogSlNOYXZpZ2F0b3JDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBB
MiAvKiBKU05vZGVDdXN0b20uY3BwICovLAogCQkJCUJDOTQzOUMyMTE2Q0Y0OTQwMDQ4Qzc1MCAv
KiBKU05vZGVDdXN0b20uaCAqLywKLQkJCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNO
b2RlRmlsdGVyQ3VzdG9tLmNwcCAqLywKIAkJCQkxQTc1MEREMzBBOTBFNzI5MDAwRkYyMTUgLyog
SlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjYxMEMxN0FBNjcwMDVDOTBB
MiAvKiBKU05vZGVMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQlBRDIwQjE4QzE4RTlEMjE2MDA1QTgw
ODMgLyogSlNOb2RlTGlzdEN1c3RvbS5oICovLApAQCAtMjE4OTUsOCArMjE4OTMsNiBAQAogCQkJ
CTkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuaCAqLywKIAkJCQk5
MzVGNDU0MDBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgKi8sCiAJ
CQkJOTM1RjQ1NDEwRjdDM0I1RjAwRDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIuaCAqLywK
LQkJCQlCQ0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNw
cCAqLywKLQkJCQlCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0
aW9uLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDYWxsYmFjayBPYmplY3RzIjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzQwNywxMCArMjM0MDMsMTEgQEAKIAkJCQk4NUFDQTlG
OTBBOUI2MzEwMDA2NzFFOTAgLyogTmFtZWROb2RlTWFwLmlkbCAqLywKIAkJCQlBODE4NzIxOTA5
NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmNwcCAqLywKIAkJCQlBODE4NzIxMzA5NzdE
M0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmggKi8sCisJCQkJODMwNkVGRjAxQjhCQ0U3QzAw
MzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwICovLAorCQkJCTgzRTk1OUUxMUI4QkMyMkIw
MDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8sCiAJCQkJQThDNEE3RUUwOUQ1NjMyNzAw
MDNBQzhEIC8qIE5vZGUuY3BwICovLAogCQkJCTE0MTE1QjUxMDlGODRCNzEwMENBNEZDMSAvKiBO
b2RlLmggKi8sCiAJCQkJMTREQzBEMEIwOUZFQ0ZBNDAwN0IwMjM1IC8qIE5vZGUuaWRsICovLAot
CQkJCTg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCAqLywKIAkJCQk4
NTRGRTcyNzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5oICovLAogCQkJCTE0MTE1QUY5
MDlGODQ3RDYwMENBNEZDMSAvKiBOb2RlRmlsdGVyLmlkbCAqLywKIAkJCQk4NTRGRTcyODBBMjI5
N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8sCkBAIC0yNDc3Miw2ICsy
NDc2OSw3IEBACiAJCQkJODUzQkY0REIwQUJCNkI1NTAwODY0N0JCIC8qIERPTU5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1NDA3NTI2MEFENkM2NjcwMDYyMEM1NyAvKiBET01Ob2RlRmlsdGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUI0OThGQjBBREIzNDAyMDA5MjVDQkIgLyogRE9NTm9k
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcg
LyogTmF0aXZlTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU1MjZDMzcwQUIwQTE3
RTAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwQjQx
QzIwQUQ5RTdFNzAwQTZFRDRGIC8qIERPTU5vZGVJdGVyYXRvckludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NUFDQUE4RDBBOUI3NTlDMDA2NzFFOTAgLyogRE9NTm9kZUxpc3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU2NTQsNyArMjU2NTIsNiBAQAogCQkJCTA3M0JFMzREMTdEMTdFN0Ew
MDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRl
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNCNzczNjIwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9k
ZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NTBEOEUwQTkwRTUyMTAw
MEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q5QzJDMzBD
MTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQyMEIx
OEQxOEU5RDIzNzAwNUE4MDgzIC8qIEpTTm9kZUxpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovLApA
QCAtMjg5MDUsNiArMjg5MDIsNyBAQAogCQkJCUJDMkVENkJDMEM2QkQyRjAwMDkyMEJGRiAvKiBK
U0F0dHJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVFOUQxMkIwM0VFMTAwM0E1
ODNBIC8qIEpTQXVkaW9CdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRGN0U5QzMxM0FD
MjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk4M0YxMjA2QjFCOEMxMDQ3MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZEQTE1RTlGMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBQUFGMzEyQjAyRUU0MDBE
Q0YzM0IgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkRBMTVFQTUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjkxODIsNiArMjkxODAsNyBAQAogCQkJCTUxMUVGMkQxMTdGMEZERjEw
MEU0RkExNiAvKiBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxMUVGMkM4MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQk9wZW5EQlJlcXVlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTExRUYyQzkxN0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk4MzA2RUZGMTFCOEJDRUE1MDAzMUQwMzIgLyogTmF0aXZl
Tm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJDQTE3RjBGRDM1MDBFNEZB
MTYgLyogSlNJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJDQjE3
RjBGRDM1MDBFNEZBMTYgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM2QzQ5RjMwRDdEQkEwNTAwRkZBNTU4IC8qIEpTSW1hZ2VDb25zdHJ1Y3Rvci5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI5MjQ3LDggKzI5MjQ2LDYgQEAKIAkJCQkxNERDMEQzNzA5
RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDlDMjY0
MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQxMTVCNzIwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlCQ0I3NzM2MTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQjc3MzYzMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NTBEOEQwQTkwRTUyMTAw
MEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzUwREQ0
MEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0Q5QzJDMjBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI5Nzg1LDcgKzI5NzgyLDYgQEAKIAkJCQkyNjc3MjYwMDFBNUIzQUQ5MDAz
QzI0REQgLyogTkZBVG9ERkEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRjQzRTAwRTY3NDEx
MDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRB
ODAwMDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTg1NEZF
NzMwMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg1NEZFNzM0MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlSXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEZGQzAyMkIxNjQzQjcxMDAwNEUxNjM4IC8qIE5vZGVS
YXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5k
ZXggYWRmZDhjMS4uZTBhYmI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
Z29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKQEAgLTI5
LDcgKzI5LDcgQEAgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb246On5HT2JqZWN0Tm9kZUZpbHRl
ckNvbmRpdGlvbigpCiAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QobV9maWx0ZXIuZ2V0
KCkpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0ZXIiLCBudWxscHRyKTsKIH0KIAotc2hvcnQgR09i
amVjdE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2Rl
KiBub2RlKSBjb25zdAorc2hvcnQgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5v
ZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBO
b2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDYx
MjgwMjUuLjUzNjZhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTM2LDcgKzM2LDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHT2JqZWN0Tm9kZUZpbHRl
ckNvbmRpdGlvbihmaWx0ZXIpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5v
ZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7CisgICAgdmlydHVhbCBzaG9ydCBhY2Nl
cHROb2RlKE5vZGUqKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBHT2JqZWN0Tm9k
ZUZpbHRlckNvbmRpdGlvbihXZWJLaXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCAxYjVl
OTViLi5iNWM1ZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTExNCw3ICsxMTQsNiBAQAogI2luY2x1ZGUgIkpTTXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOYW1lZE5vZGVNYXBDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcCIKICNpbmNsdWRlICJKU05vZGVGaWx0ZXJDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVMaXN0Q3VzdG9tLmNw
cCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAppbmRl
eCBkOThlNjMyLi5jNDdlZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NhbGxiYWNrRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
YWxsYmFja0RhdGEuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNNYWlu
VGhyZWFkRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8cnVudGltZS9FeGNl
cHRpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKICAgICAKQEAgLTY0LDE0ICs2NSwxOCBA
QCBKU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjppbnZva2VDYWxsYmFjayhKU1ZhbHVlIHRoaXNWYWx1
ZSwgTWFya2VkQXJndW1lbnRCdWZmZXImCiAgICAgICAgIGNhbGxUeXBlID0gY2FsbGJhY2soKS0+
bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEoY2FsbGJhY2soKSwgY2FsbERhdGEpOwogICAgIH0K
ICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7Ci0gICAgICAgIGlmIChtZXRob2Qg
PT0gQ2FsbGJhY2tUeXBlOjpGdW5jdGlvbikKKyAgICAgICAgaWYgKG1ldGhvZCA9PSBDYWxsYmFj
a1R5cGU6OkZ1bmN0aW9uKSB7CisgICAgICAgICAgICByZXR1cm5lZEV4Y2VwdGlvbiA9IEV4Y2Vw
dGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGNyZWF0ZVR5cGVFcnJvcihleGVjKSk7CiAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCFmdW5j
dGlvbk5hbWUuaXNOdWxsKCkpOwogICAgICAgICBmdW5jdGlvbiA9IGNhbGxiYWNrKCktPmdldChl
eGVjLCBmdW5jdGlvbk5hbWUpOwogICAgICAgICBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0
aW9uLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisg
ICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAgICAgIHJldHVy
bmVkRXhjZXB0aW9uID0gRXhjZXB0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgY3JlYXRlVHlwZUVy
cm9yKGV4ZWMpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBBU1NFUlQoIWZ1bmN0aW9uLmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2I0MTE5YS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsODYgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBt
a0Bwb3N0LmNvbSkKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIgot
Ci0jaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiSlNOb2RlLmgi
Ci0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmgiCi0jaW5jbHVkZSAiTm9kZUZpbHRlci5oIgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLUpTTm9kZUZpbHRl
ckNvbmRpdGlvbjo6SlNOb2RlRmlsdGVyQ29uZGl0aW9uKFZNJiwgTm9kZUZpbHRlciogb3duZXIs
IEpTVmFsdWUgZmlsdGVyKQotICAgIDogbV9maWx0ZXIoZmlsdGVyLmlzT2JqZWN0KCkgPyBXZWFr
PEpTT2JqZWN0Pihqc0Nhc3Q8SlNPYmplY3QqPihmaWx0ZXIpLCAmbV93ZWFrT3duZXIsIG93bmVy
KSA6IG51bGxwdHIpCi17Ci19Ci0KLXNob3J0IEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0
Tm9kZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgTm9kZSogZmlsdGVyTm9kZSkgY29uc3QKLXsKLSAg
ICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKLQotICAgIGlmICghbV9maWx0ZXIpCi0gICAgICAg
IHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwotCi0gICAgLy8gRXhlYyBpcyBudWxs
IGlmIHdlJ3ZlIGJlZW4gY2FsbGVkIGZyb20gYSBub24tSmF2YVNjcmlwdCBsYW5ndWFnZSBhbmQg
dGhlIGRvY3VtZW50Ci0gICAgLy8gaXMgbm8gbG9uZ2VyIGFibGUgdG8gcnVuIEphdmFTY3JpcHQg
KGUuZy4sIGl0J3MgZGlzY29ubmVjdGVkIGZyb20gaXRzIGZyYW1lKS4KLSAgICBpZiAoIWV4ZWMp
Ci0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0gICAgSlNWYWx1
ZSBmaWx0ZXIgPSBtX2ZpbHRlci5nZXQoKTsKLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBD
YWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZpbHRlciwgY2FsbERhdGEpOwotICAgIGlm
IChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgZmlsdGVyID0gZmlsdGVyLmdl
dChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJhY2NlcHROb2RlIikpOwotICAg
ICAgICBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZpbHRlciwgY2FsbERhdGEpOwotICAgICAgICBp
ZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7Ci0gICAgICAgICAgICBleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm9kZUZpbHRlciBvYmpl
Y3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uIikpOwotICAgICAgICAgICAg
cmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIC8vIEZJWE1FOiBUaGUgbm9kZSBzaG91
bGQgaGF2ZSB0aGUgcHJvdG90eXBlIGNoYWluIHRoYXQgY2FtZSBmcm9tIGl0cyBkb2N1bWVudCwg
bm90Ci0gICAgLy8gd2hhdGV2ZXIgcHJvdG90eXBlIGNoYWluIG1pZ2h0IGJlIG9uIHRoZSB3aW5k
b3cgdGhpcyBmaWx0ZXIgY2FtZSBmcm9tLiBCdWcgMjc2NjIKLSAgICBhcmdzLmFwcGVuZCh0b0pT
KGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIGZpbHRlck5v
ZGUpKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2Rl
RmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU0M6OmNhbGwo
ZXhlYywgZmlsdGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fZmlsdGVyLmdldCgpLCBhcmdzKTsK
LSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVy
OjpGSUxURVJfUkVKRUNUOwotCi0gICAgaW50IGludFJlc3VsdCA9IHJlc3VsdC50b0ludDMyKGV4
ZWMpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVG
aWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0KLSAgICByZXR1cm4gaW50UmVzdWx0OwotfQotCi1ib29s
IEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6V2Vha093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKLXsKLSAgICByZXR1cm4gdmlzaXRvci5jb250YWluc09wYXF1ZVJvb3QoY29u
dGV4dCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE2YTFiZTMuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCww
IEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29t
KQotICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIEpT
Tm9kZUZpbHRlckNvbmRpdGlvbl9oCi0jZGVmaW5lIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCi0K
LSNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCi0jaW5jbHVkZSA8aGVhcC9XZWFrLmg+
Ci0jaW5jbHVkZSA8aGVhcC9XZWFrSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5s
aW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIE5vZGU7Ci0g
ICAgY2xhc3MgTm9kZUZpbHRlcjsKLQotICAgIGNsYXNzIEpTTm9kZUZpbHRlckNvbmRpdGlvbiA6
IHB1YmxpYyBOb2RlRmlsdGVyQ29uZGl0aW9uIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRp
YyBSZWY8SlNOb2RlRmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoSlNDOjpWTSYgdm0sIE5vZGVGaWx0
ZXIqIG93bmVyLCBKU0M6OkpTVmFsdWUgZmlsdGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBKU05vZGVGaWx0ZXJDb25kaXRpb24odm0sIG93bmVyLCBmaWx0
ZXIpKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uKEpTQzo6Vk0mLCBOb2RlRmlsdGVyKiBvd25lciwgSlNDOjpKU1ZhbHVlIGZpbHRlcik7
Ci0KLSAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9k
ZSopIGNvbnN0OwotCi0gICAgICAgIGNsYXNzIFdlYWtPd25lciA6IHB1YmxpYyBKU0M6OldlYWtI
YW5kbGVPd25lciB7Ci0gICAgICAgICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpT
bG90VmlzaXRvciYpOwotICAgICAgICB9OwotICAgICAgICBXZWFrT3duZXIgbV93ZWFrT3duZXI7
Ci0gICAgICAgIG11dGFibGUgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fZmlsdGVyOwotICAg
IH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEpTTm9kZUZpbHRlckNv
bmRpdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcAppbmRleCA3MDUzM2RiLi45ZjMwMGNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMCw0MSArMTAs
NTggQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVy
LmgiCiAKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIKKyNpbmNsdWRlICJKU0Nh
bGxiYWNrRGF0YS5oIgorI2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgIk5vZGVGaWx0ZXIu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTTm9kZUZpbHRlcjo6dmlzaXRBZGRp
dGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdG9y
LmFkZE9wYXF1ZVJvb3QoJmltcGwoKSk7Ci19Cit1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1SZWZQ
dHI8Tm9kZUZpbHRlcj4gSlNOb2RlRmlsdGVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKKy8vIEZJWE1FOiBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGlzIGN1cnJl
bnRseSBub3QgYWJsZSB0byBnZW5lcmF0ZQorLy8gY2FsbGJhY2sgZnVuY3Rpb24gY2FsbHMgaWYg
dGhleSByZXR1cm4gc29tZXRoaW5nIGVsc2UgdGhhbiBhCisvLyBib29sZWFuLgordWludDE2X3Qg
SlNOb2RlRmlsdGVyOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKEpTTm9kZUZpbHRlcjo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuICZKU0M6OmpzQ2Fz
dDxKU05vZGVGaWx0ZXIqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7CisgICAgUmVmPEpTTm9k
ZUZpbHRlcj4gcHJvdGVjdCgqdGhpcyk7CisKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhtX2RhdGEt
Pmdsb2JhbE9iamVjdCgpLT52bSgpKTsKKworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZGF0YS0+
Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBh
cmdzOworICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgbV9kYXRhLT5nbG9iYWxPYmplY3QoKSwg
bm9kZSkpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIE5v
ZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CisKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IHJldHVy
bmVkRXhjZXB0aW9uOworICAgIEpTVmFsdWUgdmFsdWUgPSBtX2RhdGEtPmludm9rZUNhbGxiYWNr
KGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6OkZ1bmN0aW9uT3JPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImFjY2VwdE5vZGUiKSwgcmV0dXJuZWRFeGNlcHRp
b24pOworICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICAvLyBSZXRocm93IGV4
Y2VwdGlvbi4KKyAgICAgICAgZXhlYy0+dm0oKS5zZXRFeGNlcHRpb24ocmV0dXJuZWRFeGNlcHRp
b24pOworCisgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOworICAgIH0K
IAotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgdWludDE2X3QgcmVzdWx0ID0gdG9VSW50MTYoZXhlYywgdmFsdWUsIE5vcm1hbENvbnZlcnNp
b24pOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIE5vZGVG
aWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CiAKLSAgICBSZWZQdHI8Tm9kZUZpbHRlcj4gcmVzdWx0ID0g
Tm9kZUZpbHRlcjo6Y3JlYXRlKCk7Ci0gICAgcmVzdWx0LT5zZXRDb25kaXRpb24oSlNOb2RlRmls
dGVyQ29uZGl0aW9uOjpjcmVhdGUodm0sIHJlc3VsdC5nZXQoKSwgdmFsdWUpKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggM2JlMTU2My4uNmMzNzc2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25k
aXRpb24uaApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbihmaWx0ZXIpKTsK
ICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNT
dGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKE5v
ZGUqKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIE9iakNOb2RlRmlsdGVyQ29uZGl0
aW9uKGlkIDxET01Ob2RlRmlsdGVyPiBmaWx0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1tIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbQppbmRleCAyNGI1MTky
Li45ODRhMWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNO
b2RlRmlsdGVyQ29uZGl0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
T2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0KQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zaG9ydCBPYmpDTm9kZUZpbHRlckNv
bmRpdGlvbjo6YWNjZXB0Tm9kZShFeGVjU3RhdGUqLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQg
T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNU
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQppbmRleCA4ODVjMGVjLi40ZjZlZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzQ3NSw2ICszNDc1LDggQEAg
c3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICAjIERlc3RydWN0b3IKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgfiRjbGFzc05hbWUoKTtcbiIpOwogCisgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBKU0NhbGxiYWNrRGF0YSogY2FsbGJhY2tEYXRhKCkgeyBy
ZXR1cm4gbV9kYXRhOyB9XG4iKTsKKwogICAgICMgQ29uc3RydWN0b3Igb2JqZWN0IGdldHRlci4K
ICAgICBpZiAoQHskaW50ZXJmYWNlLT5jb25zdGFudHN9KSB7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIik7CkBAIC0zNTE2LDYgKzM1MTgsMTAgQEAgc3Vi
IEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpT
Q2FsbGJhY2tEYXRhKiBtX2RhdGE7XG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtc
blxuIik7CiAKKyAgICAjIHRvSlMoKS4KKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZh
Y2VOYW1lKik7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiaW5saW5lIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCAkaW50ZXJmYWNlTmFtZSYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsICZpbXBsKTsgfVxuXG4iKTsKKwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlXG5cbiIpOwogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRj
b2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UpOwogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cblxu
IikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwpAQCAtMzY4OSw2ICszNjk1LDE0IEBAIHN1YiBHZW5l
cmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KICAgICAgICAgfQogICAgIH0KIAorICAgICMgdG9K
UygpIGltcGxlbWVudGF0aW9uLgorICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5KU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGludGVyZmFjZU5h
bWUqIGltcGwpXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmICghaW1wbCB8fCAhc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9
Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybiBqc051bGwoKTtcblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSY+KCppbXBsKS5jYWxsYmFja0RhdGEo
KS0+Y2FsbGJhY2soKTtcblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKKwog
ICAgIHB1c2goQGltcGxDb250ZW50LCAiXG59XG4iKTsKICAgICBteSAkY29uZGl0aW9uYWxTdHJp
bmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNl
KTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJp
bmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQppbmRleCBjNWI4Nzc5Li42MzVk
MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JPYmpDLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvck9iakMucG0KQEAgLTQyMCw2ICs0MjAsNyBAQCBzdWIgR2V0SW1wbENsYXNzTmFtZQog
ewogICAgIG15ICRuYW1lID0gc2hpZnQ7CiAKKyAgICByZXR1cm4gIk5hdGl2ZU5vZGVGaWx0ZXIi
IGlmICRuYW1lIGVxICJOb2RlRmlsdGVyIjsKICAgICByZXR1cm4gIkRPTVdpbmRvdyIgaWYgJG5h
bWUgZXEgIkFic3RyYWN0VmlldyI7CiAgICAgcmV0dXJuICRuYW1lOwogfQpAQCAtNjkzLDcgKzY5
NCw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICB9CiAKICAgICBpZiAoJHR5cGUgZXEg
Ik5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICRpbXBsSW5jbHVkZXN7Ik5vZGVGaWx0ZXIuaCJ9ID0g
MTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siTmF0aXZlTm9kZUZpbHRlci5oIn0gPSAxOwogICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJPYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oIn0gPSAxOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMTU1Nyw3ICsxNTU4LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJG5lZWRzQ3VzdG9t
eyJOb2RlRmlsdGVyIn07CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAi
ICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlRmlsdGVyPiBuYXRpdmVOb2RlRmlsdGVyO1xuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIGlmICgkcGFyYW1OYW1l
KVxuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICBu
YXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6Tm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok9i
akNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAg
ICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICBuYXRpdmVOb2RlRmlsdGVy
ID0gV2ViQ29yZTo6TmF0aXZlTm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok9iakNOb2RlRmls
dGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFtTmFtZSkpO1xuIik7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlck5hbWVzLCAiZWMiKSBpZiAkcmFpc2VzRXhjZXB0
aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDY3NDJmYjguLjU1Njg0NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtMTA4LDcgKzEwOCw2IEBACiAjaW5j
bHVkZSAiTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmNw
cCIKICNpbmNsdWRlICJOb2RlLmNwcCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmNwcCIKICNpbmNs
dWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKICNpbmNsdWRlICJOb2RlSXRlcmF0b3IuY3Bw
IgogI2luY2x1ZGUgIk5vZGVPclN0cmluZy5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTmF0aXZlTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9k
ZUZpbHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBhMzRjOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmNw
cApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk5hdGl2ZU5vZGVGaWx0ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitOYXRp
dmVOb2RlRmlsdGVyOjpOYXRpdmVOb2RlRmlsdGVyKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9u
PiYmIGNvbmRpdGlvbikKKyAgICA6IG1fY29uZGl0aW9uKGNvbmRpdGlvbikKK3sgfQorCit1aW50
MTZfdCBOYXRpdmVOb2RlRmlsdGVyOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpCit7CisgICAgLy8g
Y2FzdCB0byBzaG9ydCBzaWxlbmNlcyAiZW51bWVyYWwgYW5kIG5vbi1lbnVtZXJhbCB0eXBlcyBp
biByZXR1cm4iIHdhcm5pbmcKKyAgICByZXR1cm4gbV9jb25kaXRpb24gPyBtX2NvbmRpdGlvbi0+
YWNjZXB0Tm9kZShub2RlKSA6IHN0YXRpY19jYXN0PHVpbnQxNl90PihGSUxURVJfQUNDRVBUKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05hdGl2ZU5vZGVGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmls
dGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IwNzhlYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKQEAgLTAs
MCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmF0aXZlTm9kZUZpbHRlcl9oCisjZGVm
aW5lIE5hdGl2ZU5vZGVGaWx0ZXJfaAorCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorI2luY2x1
ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBOYXRpdmVOb2RlRmlsdGVyIGZpbmFsIDogcHVibGljIE5vZGVGaWx0ZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TmF0aXZlTm9kZUZpbHRlcj4gY3JlYXRlKFJlZlB0cjxOb2RlRmlsdGVy
Q29uZGl0aW9uPiYmIGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5hdGl2ZU5vZGVGaWx0ZXIoV1RGOjptb3ZlKGNvbmRpdGlvbikpKTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgUmVmPE5hdGl2ZU5vZGVGaWx0ZXI+IGNyZWF0ZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXRpdmVOb2RlRmlsdGVyKCkpOworICAgIH0KKworICAgIHZp
cnR1YWwgdWludDE2X3QgYWNjZXB0Tm9kZShOb2RlKikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNl
dENvbmRpdGlvbihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4mJiBjb25kaXRpb24pIHsgQVNT
RVJUKCFtX2NvbmRpdGlvbik7IG1fY29uZGl0aW9uID0gY29uZGl0aW9uOyB9CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgTmF0aXZlTm9kZUZpbHRlcihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlv
bj4mJik7CisKKyAgICBOYXRpdmVOb2RlRmlsdGVyKCkgeyB9CisKKyAgICBSZWZQdHI8Tm9kZUZp
bHRlckNvbmRpdGlvbj4gbV9jb25kaXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBOYXRpdmVOb2RlRmlsdGVyX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGFiYzU0Li4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMCBGcmVkZXJpayBIb2xsamVuIChmcmVkZXJpay5o
b2xsamVuQGhpZy5ubykKLSAqIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBv
c3QuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdA
Z21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOb2RlRmls
dGVyLmgiCi0KLSNpbmNsdWRlICJOb2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc2hv
cnQgTm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5v
ZGUpIGNvbnN0Ci17Ci0gICAgLy8gY2FzdCB0byBzaG9ydCBzaWxlbmNlcyAiZW51bWVyYWwgYW5k
IG5vbi1lbnVtZXJhbCB0eXBlcyBpbiByZXR1cm4iIHdhcm5pbmcKLSAgICByZXR1cm4gbV9jb25k
aXRpb24gPyBtX2NvbmRpdGlvbi0+YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZSkgOiBzdGF0aWNfY2Fz
dDxzaG9ydD4oRklMVEVSX0FDQ0VQVCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUZpbHRlci5oCmluZGV4IDk2MTk3ZDkuLjI2Zjc2NjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVGaWx0ZXIuaApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwMCBGcmVkZXJp
ayBIb2xsamVuIChmcmVkZXJpay5ob2xsamVuQGhpZy5ubykKICAqIENvcHlyaWdodCAoQykgMjAw
MSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVl
bCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwOCwgMjAwOSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDcwICsyNSw1MCBAQAogI2lmbmRlZiBOb2RlRmls
dGVyX2gKICNkZWZpbmUgTm9kZUZpbHRlcl9oCiAKLSNpbmNsdWRlICJET01XcmFwcGVyV29ybGQu
aCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotICAgIGNsYXNzIE5vZGVGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb2RlRmlsdGVyPiB7
Ci0gICAgcHVibGljOgotICAgICAgICAvKioKLSAgICAgICAgICogVGhlIGZvbGxvd2luZyBjb25z
dGFudHMgYXJlIHJldHVybmVkIGJ5IHRoZSBhY2NlcHROb2RlKCkKLSAgICAgICAgICogbWV0aG9k
OgotICAgICAgICAgKi8KLSAgICAgICAgZW51bSB7Ci0gICAgICAgICAgICBGSUxURVJfQUNDRVBU
ID0gMSwKLSAgICAgICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAyLAotICAgICAgICAgICAgRklMVEVS
X1NLSVAgICA9IDMKLSAgICAgICAgfTsKK2NsYXNzIE5vZGU7CiAKLSAgICAgICAgLyoqCi0gICAg
ICAgICAqIFRoZXNlIGFyZSB0aGUgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIHdoYXRUb1Nob3cg
cGFyYW1ldGVyLgotICAgICAgICAgKiBUaGV5IGFyZSB0aGUgc2FtZSBhcyB0aGUgc2V0IG9mIHBv
c3NpYmxlIHR5cGVzIGZvciBOb2RlLCBhbmQKLSAgICAgICAgICogdGhlaXIgdmFsdWVzIGFyZSBk
ZXJpdmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgICog
dG8gdGhlIHZhbHVlIG9mIE5vZGVUeXBlIGZvciB0aGUgZXF1aXZhbGVudCBub2RlIHR5cGUuCi0g
ICAgICAgICAqLwotICAgICAgICBlbnVtIHsKLSAgICAgICAgICAgIFNIT1dfQUxMICAgICAgICAg
ICAgICAgICAgICAgICA9IDB4RkZGRkZGRkYsCi0gICAgICAgICAgICBTSE9XX0VMRU1FTlQgICAg
ICAgICAgICAgICAgICAgPSAweDAwMDAwMDAxLAotICAgICAgICAgICAgU0hPV19BVFRSSUJVVEUg
ICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMiwKLSAgICAgICAgICAgIFNIT1dfVEVYVCAgICAg
ICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCi0gICAgICAgICAgICBTSE9XX0NEQVRBX1NF
Q1RJT04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAotICAgICAgICAgICAgU0hPV19FTlRJVFlf
UkVGRVJFTkNFICAgICAgICAgID0gMHgwMDAwMDAxMCwKLSAgICAgICAgICAgIFNIT1dfRU5USVRZ
ICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMjAsCi0gICAgICAgICAgICBTSE9XX1BST0NF
U1NJTkdfSU5TVFJVQ1RJT04gICAgPSAweDAwMDAwMDQwLAotICAgICAgICAgICAgU0hPV19DT01N
RU5UICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDA4MCwKLSAgICAgICAgICAgIFNIT1dfRE9D
VU1FTlQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAxMDAsCi0gICAgICAgICAgICBTSE9XX0RP
Q1VNRU5UX1RZUEUgICAgICAgICAgICAgPSAweDAwMDAwMjAwLAotICAgICAgICAgICAgU0hPV19E
T0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMCwKLSAgICAgICAgICAgIFNIT1df
Tk9UQVRJT04gICAgICAgICAgICAgICAgICA9IDB4MDAwMDA4MDAKLSAgICAgICAgfTsKK2NsYXNz
IE5vZGVGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb2RlRmlsdGVyPiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+Tm9kZUZpbHRlcigpIHsgfQorICAgIHZpcnR1YWwgdWludDE2X3QgYWNjZXB0
Tm9kZShOb2RlKikgPSAwOwogCi0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUZpbHRlcj4gY3JlYXRl
KFBhc3NSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gY29uZGl0aW9uKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOb2RlRmlsdGVyKGNvbmRpdGlvbikpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIFJlZjxOb2RlRmlsdGVyPiBjcmVhdGUoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOb2RlRmlsdGVyKCkpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5v
ZGUqKSBjb25zdDsKLQotICAgICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRo
ZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0aXZlLUMgYmluZGlu
Z3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdv
cmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAgIHNob3J0IGFjY2Vw
dE5vZGUoTm9kZSogbm9kZSkgY29uc3QgeyByZXR1cm4gYWNjZXB0Tm9kZShleGVjU3RhdGVGcm9t
Tm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbm9kZSksIG5vZGUpOyB9Ci0gICAgICAgIAot
ICAgICAgICB2b2lkIHNldENvbmRpdGlvbihQYXNzUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+
IGNvbmRpdGlvbikgeyBBU1NFUlQoIW1fY29uZGl0aW9uKTsgbV9jb25kaXRpb24gPSBjb25kaXRp
b247IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxpY2l0IE5vZGVGaWx0ZXIoUGFzc1Jl
ZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBjb25kaXRpb24pIDogbV9jb25kaXRpb24oY29uZGl0
aW9uKSB7IH0KLSAgICAgICAgTm9kZUZpbHRlcigpIHt9CisgICAgLyoKKyAgICAgKiBUaGUgZm9s
bG93aW5nIGNvbnN0YW50cyBhcmUgcmV0dXJuZWQgYnkgdGhlIGFjY2VwdE5vZGUoKQorICAgICAq
IG1ldGhvZDoKKyAgICAgKi8KKyAgICBlbnVtIHsKKyAgICAgICAgRklMVEVSX0FDQ0VQVCA9IDEs
CisgICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAyLAorICAgICAgICBGSUxURVJfU0tJUCAgID0gMwor
ICAgIH07CiAKLSAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+IG1fY29uZGl0aW9u
OworICAgIC8qCisgICAgICogVGhlc2UgYXJlIHRoZSBhdmFpbGFibGUgdmFsdWVzIGZvciB0aGUg
d2hhdFRvU2hvdyBwYXJhbWV0ZXIuCisgICAgICogVGhleSBhcmUgdGhlIHNhbWUgYXMgdGhlIHNl
dCBvZiBwb3NzaWJsZSB0eXBlcyBmb3IgTm9kZSwgYW5kCisgICAgICogdGhlaXIgdmFsdWVzIGFy
ZSBkZXJpdmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNvcnJlc3BvbmRpbmcKKyAgICAgKiB0
byB0aGUgdmFsdWUgb2YgTm9kZVR5cGUgZm9yIHRoZSBlcXVpdmFsZW50IG5vZGUgdHlwZS4KKyAg
ICAgKi8KKyAgICBlbnVtIHsKKyAgICAgICAgU0hPV19BTEwgICAgICAgICAgICAgICAgICAgICAg
ID0gMHhGRkZGRkZGRiwKKyAgICAgICAgU0hPV19FTEVNRU5UICAgICAgICAgICAgICAgICAgID0g
MHgwMDAwMDAwMSwKKyAgICAgICAgU0hPV19BVFRSSUJVVEUgICAgICAgICAgICAgICAgID0gMHgw
MDAwMDAwMiwKKyAgICAgICAgU0hPV19URVhUICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAw
MDAwNCwKKyAgICAgICAgU0hPV19DREFUQV9TRUNUSU9OICAgICAgICAgICAgID0gMHgwMDAwMDAw
OCwKKyAgICAgICAgU0hPV19FTlRJVFlfUkVGRVJFTkNFICAgICAgICAgID0gMHgwMDAwMDAxMCwK
KyAgICAgICAgU0hPV19FTlRJVFkgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAyMCwKKyAg
ICAgICAgU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICAgID0gMHgwMDAwMDA0MCwKKyAgICAg
ICAgU0hPV19DT01NRU5UICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDA4MCwKKyAgICAgICAg
U0hPV19ET0NVTUVOVCAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU0hP
V19ET0NVTUVOVF9UWVBFICAgICAgICAgICAgID0gMHgwMDAwMDIwMCwKKyAgICAgICAgU0hPV19E
T0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMCwKKyAgICAgICAgU0hPV19OT1RB
VElPTiAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDgwMAogICAgIH07Cit9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmls
dGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbAppbmRleCBkZWVlMGFi
Li5mYjczNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCkBAIC0yMCwxNiArMjAsMTIg
QEAKIAogLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIFsKLSAgICBKU0N1c3RvbU1hcmtG
dW5jdGlvbiwKLSAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAogICAgIE9iakNQcm90b2NvbCwK
LSAgICBDUFBQdXJlSW50ZXJmYWNlLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1d
IGludGVyZmFjZSBOb2RlRmlsdGVyIHsKK10gY2FsbGJhY2sgaW50ZXJmYWNlIE5vZGVGaWx0ZXIg
ewogICAgIC8vIENvbnN0YW50cyByZXR1cm5lZCBieSBhY2NlcHROb2RlCi0gICAgY29uc3Qgc2hv
cnQgICAgICAgICAgICAgICBGSUxURVJfQUNDRVBUICAgICAgICAgICAgICAgICAgPSAxOwotICAg
IGNvbnN0IHNob3J0ICAgICAgICAgICAgICAgRklMVEVSX1JFSkVDVCAgICAgICAgICAgICAgICAg
ID0gMjsKLSAgICBjb25zdCBzaG9ydCAgICAgICAgICAgICAgIEZJTFRFUl9TS0lQICAgICAgICAg
ICAgICAgICAgICA9IDM7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklMVEVSX0FDQ0VQVCA9
IDE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklMVEVSX1JFSkVDVCA9IDI7CisgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgRklMVEVSX1NLSVAgPSAzOwogCiAgICAgLy8gQ29uc3RhbnRzIGZv
ciB3aGF0VG9TaG93CiAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBTSE9XX0FMTCAgICAg
ICAgICAgICAgICAgICAgICAgPSAweEZGRkZGRkZGOwpAQCAtNDYsNyArNDIsMTAgQEAKICAgICBj
b25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01FTlQgICAgICAgICA9
IDB4MDAwMDA0MDA7CiAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBTSE9XX05PVEFUSU9O
ICAgICAgICAgICAgICAgICAgPSAweDAwMDAwODAwOwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdFN0
YXRlXSBzaG9ydCBhY2NlcHROb2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBu
KTsKLQorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVD
VElWRV9DCisgICAgc2hvcnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IE5vZGUgbik7CisjZWxzZQorICAgIFtDdXN0b21dIHVuc2lnbmVkIHNob3J0IGFjY2VwdE5vZGUo
W0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBOb2RlIG4pOworI2VuZGlmCiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5kZXggZTQ3OGQ5NC4uNzJj
OWVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAt
MjksNyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXNob3J0IE5vZGVGaWx0ZXJD
b25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3QKK3Nob3J0
IE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoTm9kZSopIGNvbnN0CiB7CiAgICAgcmV0
dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVG
aWx0ZXJDb25kaXRpb24uaAppbmRleCA4YmEzOGY2Li4yYjlhYjY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIE5vZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJsaWMgUmVmQ291bnRl
ZDxOb2RlRmlsdGVyQ29uZGl0aW9uPiB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5O
b2RlRmlsdGVyQ29uZGl0aW9uKCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9k
ZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgc2hv
cnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlz
aXRBZ2dyZWdhdGUoSlNDOjpTbG90VmlzaXRvciYpIHsgfQogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVJdGVyYXRvci5jcHAKaW5kZXggZTg3MDFlZS4uYjU5OTc2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVJdGVyYXRvci5jcHAKQEAgLTg5LDExICs4OSwxMSBAQCBOb2RlSXRlcmF0b3I6On5Ob2Rl
SXRlcmF0b3IoKQogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5kZXRhY2hOb2RlSXRlcmF0b3IodGhp
cyk7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpuZXh0Tm9kZShKU0M6OkV4
ZWNTdGF0ZSogc3RhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxOb2RlPiBOb2Rl
SXRlcmF0b3I6Om5leHROb2RlKEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX2RldGFj
aGVkKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBSZWZQdHI8Tm9kZT4gcmVz
dWx0OwpAQCAtMTA0LDkgKzEwNCw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpu
ZXh0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAg
IC8vIEluIG90aGVyIHdvcmRzLCBGSUxURVJfUkVKRUNUIGRvZXMgbm90IHBhc3Mgb3ZlciBkZXNj
ZW5kYW50cwogICAgICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9kZS4gSGVuY2UsIEZJTFRFUl9S
RUpFQ1QgaXMgdGhlIHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAgICAgIFJlZlB0cjxOb2RlPiBw
cm92aXNpb25hbFJlc3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2RlOwotICAgICAgICBib29sIG5v
ZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUoc3RhdGUsIHByb3Zpc2lvbmFsUmVzdWx0LmdldCgp
KSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3Rh
dGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJvb2wgbm9k
ZVdhc0FjY2VwdGVkID0gYWNjZXB0Tm9kZShwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9k
ZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5vZGVXYXNBY2NlcHRlZCkgewog
ICAgICAgICAgICAgbV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRhdGVOb2RlOwogICAgICAgICAg
ICAgcmVzdWx0ID0gcHJvdmlzaW9uYWxSZXN1bHQucmVsZWFzZSgpOwpAQCAtMTE4LDExICsxMTYs
MTEgQEAgUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2Uo
KTsKIH0KIAotUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6OnByZXZpb3VzTm9kZShKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxOb2RlPiBO
b2RlSXRlcmF0b3I6OnByZXZpb3VzTm9kZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
bV9kZXRhY2hlZCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgUmVmUHRyPE5v
ZGU+IHJlc3VsdDsKQEAgLTEzMyw5ICsxMzEsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVy
YXRvcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgRXhjZXB0aW9uQ29kZQog
ICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgRklMVEVSX1JFSkVDVCBkb2VzIG5vdCBwYXNzIG92
ZXIgZGVzY2VuZGFudHMKICAgICAgICAgLy8gb2YgdGhlIHJlamVjdGVkIG5vZGUuIEhlbmNlLCBG
SUxURVJfUkVKRUNUIGlzIHRoZSBzYW1lIGFzIEZJTFRFUl9TS0lQLgogICAgICAgICBSZWZQdHI8
Tm9kZT4gcHJvdmlzaW9uYWxSZXN1bHQgPSBtX2NhbmRpZGF0ZU5vZGUubm9kZTsKLSAgICAgICAg
Ym9vbCBub2RlV2FzQWNjZXB0ZWQgPSBhY2NlcHROb2RlKHN0YXRlLCBwcm92aXNpb25hbFJlc3Vs
dC5nZXQoKSkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLSAgICAgICAgaWYgKHN0YXRl
ICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBi
b29sIG5vZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUocHJvdmlzaW9uYWxSZXN1bHQuZ2V0KCkp
ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CiAgICAgICAgIGlmIChub2RlV2FzQWNjZXB0
ZWQpIHsKICAgICAgICAgICAgIG1fcmVmZXJlbmNlTm9kZSA9IG1fY2FuZGlkYXRlTm9kZTsKICAg
ICAgICAgICAgIHJlc3VsdCA9IHByb3Zpc2lvbmFsUmVzdWx0LnJlbGVhc2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlSXRlcmF0b3IuaAppbmRleCA1Zjg5ZTYyLi40NzEzOWIzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuaApAQCAtNDMsOCArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIH0KICAgICAgICAgfk5vZGVJdGVyYXRvcigpOwogCi0gICAgICAgIFBhc3NSZWZQdHI8Tm9k
ZT4gbmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIFBh
c3NSZWZQdHI8Tm9kZT4gcHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgICAgICBQYXNzUmVmUHRyPE5vZGU+IG5leHROb2RlKEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICAgICAgUGFzc1JlZlB0cjxOb2RlPiBwcmV2aW91c05vZGUoRXhjZXB0aW9uQ29kZSYpOwog
ICAgICAgICB2b2lkIGRldGFjaCgpOwogCiAgICAgICAgIE5vZGUqIHJlZmVyZW5jZU5vZGUoKSBj
b25zdCB7IHJldHVybiBtX3JlZmVyZW5jZU5vZGUubm9kZS5nZXQoKTsgfQpAQCAtNTMsMTEgKzUz
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBiZWZvcmUgYW55IG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudCB0cmVlLgog
ICAgICAgICB2b2lkIG5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmKTsKIAotICAgICAgICAvLyBEbyBu
b3QgY2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3Vw
cG9ydCB0aGUgT2JqZWN0aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBp
biB0aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2Vw
dGlvbnMuCi0gICAgICAgIFBhc3NSZWZQdHI8Tm9kZT4gbmV4dE5vZGUoRXhjZXB0aW9uQ29kZSYg
ZWMpIHsgcmV0dXJuIG5leHROb2RlKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxX
b3JsZCgpLCByZWZlcmVuY2VOb2RlKCkpLCBlYyk7IH0KLSAgICAgICAgUGFzc1JlZlB0cjxOb2Rl
PiBwcmV2aW91c05vZGUoRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIHByZXZpb3VzTm9kZShl
eGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgcmVmZXJlbmNlTm9kZSgp
KSwgZWMpOyB9Ci0KICAgICBwcml2YXRlOgogICAgICAgICBOb2RlSXRlcmF0b3IoUGFzc1JlZlB0
cjxOb2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+
LCBib29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0
b3IuaWRsCmluZGV4IDVjZjc4ZGYuLmE5OTUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlSXRlcmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0
b3IuaWRsCkBAIC0zMCw4ICszMCw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcmVm
ZXJlbmNlTm9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwb2ludGVyQmVmb3Jl
UmVmZXJlbmNlTm9kZTsKIAotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgUmFpc2VzRXhjZXB0
aW9uXSBOb2RlIG5leHROb2RlKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBSYWlzZXNF
eGNlcHRpb25dIE5vZGUgcHJldmlvdXNOb2RlKCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9k
ZSBuZXh0Tm9kZSgpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGUgcHJldmlvdXNOb2RlKCk7
CiAgICAgdm9pZCBkZXRhY2goKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmF2ZXJzYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKaW5kZXgg
MWMyMjcwNS4uNzYzZjE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNh
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKQEAgLTM4LDcgKzM4
LDcgQEAgTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+
IHJvb3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXQKIHsKIH0KIAotc2hvcnQgTm9kZUl0ZXJhdG9y
QmFzZTo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0
CitzaG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBj
aGVjayBtX2V4cGFuZEVudGl0eVJlZmVyZW5jZXMuCiAKQEAgLTQ4LDcgKzQ4LDcgQEAgc2hvcnQg
Tm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUq
IG5vZGUpIGNvbnN0CiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUDsKICAg
ICBpZiAoIW1fZmlsdGVyKQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQ
VDsKLSAgICByZXR1cm4gbV9maWx0ZXItPmFjY2VwdE5vZGUoc3RhdGUsIG5vZGUpOworICAgIHJl
dHVybiBtX2ZpbHRlci0+YWNjZXB0Tm9kZShub2RlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oCmluZGV4IDE1ZjA5ZTIuLjZhY2ZiZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJhdmVyc2FsLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4s
IHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4
ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikg
Y29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVXYWxrZXIuY3BwCmluZGV4IGRmMDM0YjEuLjA1ODM2MjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5jcHAKQEAgLTU0LDI4ICs1NCwyNCBAQCBpbmxpbmUgTm9kZSogVHJlZVdh
bGtlcjo6c2V0Q3VycmVudChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgcmV0dXJuIG1fY3Vy
cmVudC5nZXQoKTsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cGFyZW50Tm9kZShKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKCkKIHsKICAgICBSZWZQ
dHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICB3aGlsZSAobm9kZSAhPSByb290KCkpIHsK
ICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlKQot
ICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBh
Y2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRl
LT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2Rl
KG5vZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVy
OjpGSUxURVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxl
YXNlKCkpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
Tm9kZSogVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2Rl
KiBUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2Rl
ID0gbV9jdXJyZW50LT5maXJzdENoaWxkKCk7IG5vZGU7ICkgewotICAgICAgICBzaG9ydCBhY2Nl
cHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlm
IChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7
CiAgICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAgY2FzZSBO
b2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5v
ZGUucmVsZWFzZSgpOwpAQCAtOTYsMTkgKzkyLDE3IEBAIE5vZGUqIFRyZWVXYWxrZXI6OmZpcnN0
Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Q29udGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAg
aWYgKCFwYXJlbnQgfHwgcGFyZW50ID09IHJvb3QoKSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50KQot
ICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICAgICAgbm9kZSA9IHBhcmVudDsKICAgICAgICAgfSB3aGlsZSAobm9kZSk7CiAg
ICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVl
V2Fsa2VyOjpsYXN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtl
cjo6bGFzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50
LT5sYXN0Q2hpbGQoKTsgbm9kZTsgKSB7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQg
PSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0
YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBzaG9y
dCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgc3dp
dGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICBjYXNlIE5vZGVGaWx0ZXI6OkZJ
TFRFUl9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gbm9kZS5yZWxlYXNlKCk7
CkBAIC0xMjksMjMgKzEyMywyMSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoSlNDOjpF
eGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgQ29udGFpbmVyTm9k
ZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgaWYgKCFwYXJlbnQg
fHwgcGFyZW50ID09IHJvb3QoKSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50KQotICAgICAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAg
ICAgbm9kZSA9IHBhcmVudDsKICAgICAgICAgfSB3aGlsZSAobm9kZSk7CiAgICAgfQotICAgIHJl
dHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpwcmV2
aW91c1NpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6cHJl
dmlvdXNTaWJsaW5nKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAg
ICBpZiAobm9kZSA9PSByb290KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBzaWJs
aW5nID0gbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7IHNpYmxpbmc7ICkgewotICAgICAgICAgICAg
c2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIHNpYmxpbmcuZ2V0KCkp
OwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQg
PSBhY2NlcHROb2RlKHNpYmxpbmcuZ2V0KCkpOwogICAgICAgICAgICAgc3dpdGNoIChhY2NlcHRO
b2RlUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUND
RVBUOgogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBzaWJsaW5nLnJlbGVhc2UoKTsK
QEAgLTE2NCwyNSArMTU2LDIxIEBAIE5vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZyhK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgICAgIH0KICAgICAgICAgbm9kZSA9IG5vZGUtPnBh
cmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlIHx8IG5vZGUgPT0gcm9vdCgpKQotICAgICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHRO
b2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRF
eGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUu
Z2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxU
RVJfQUNDRVBUKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKCkKIHsKICAgICBS
ZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICBpZiAobm9kZSA9PSByb290KCkpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB3aGlsZSAoMSkg
ewogICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBzaWJsaW5nID0gbm9kZS0+bmV4dFNpYmxpbmco
KTsgc2libGluZzsgKSB7Ci0gICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNj
ZXB0Tm9kZShzdGF0ZSwgc2libGluZy5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoc3RhdGUgJiYg
c3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc2libGluZy5nZXQoKSk7
CiAgICAgICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKICAgICAgICAgICAgICAg
ICBjYXNlIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgICAgIG1f
Y3VycmVudCA9IHNpYmxpbmcucmVsZWFzZSgpOwpAQCAtMjAxLDMxICsxODksMjUgQEAgTm9kZSog
VHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICB9
CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSB8
fCBub2RlID09IHJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBzaG9ydCBh
Y2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAg
IGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBzaG9ydCBhY2NlcHROb2Rl
UmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVS
ZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCi1Ob2RlKiBUcmVlV2Fs
a2VyOjpwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtl
cjo6cHJldmlvdXNOb2RlKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsK
ICAgICB3aGlsZSAobm9kZSAhPSByb290KCkpIHsKICAgICAgICAgd2hpbGUgKE5vZGUqIHByZXZp
b3VzU2libGluZyA9IG5vZGUtPnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgICAgICBub2Rl
ID0gcHJldmlvdXNTaWJsaW5nOwotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9
IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYm
IHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwog
ICAgICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JF
SkVDVCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHdoaWxlIChOb2Rl
KiBsYXN0Q2hpbGQgPSBub2RlLT5sYXN0Q2hpbGQoKSkgewogICAgICAgICAgICAgICAgIG5vZGUg
PSBsYXN0Q2hpbGQ7Ci0gICAgICAgICAgICAgICAgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5v
ZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0
ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICAgICAgICAgIGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAg
ICAgICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9S
RUpFQ1QpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMjM1
LDI5ICsyMTcsMjUgQEAgTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAobm9kZSA9
PSByb290KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7
CiAgICAgICAgIGlmICghcGFyZW50KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgbm9kZSA9IHBhcmVudDsKLSAgICAgICAgc2hvcnQg
YWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAg
ICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0
KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwog
ICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJl
ZVdhbGtlcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtl
cjo6bmV4dE5vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50OwogQ2hp
bGRyZW46CiAgICAgd2hpbGUgKE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCkp
IHsKICAgICAgICAgbm9kZSA9IGZpcnN0Q2hpbGQ7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVS
ZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRl
ICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsK
ICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQ
VCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAgICAg
ICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKQEAg
LTI2NSw5ICsyNDMsNyBAQCBDaGlsZHJlbjoKICAgICB9CiAgICAgd2hpbGUgKE5vZGUqIG5leHRT
aWJsaW5nID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUsIHJvb3Qo
KSkpIHsKICAgICAgICAgbm9kZSA9IG5leHRTaWJsaW5nOwotICAgICAgICBzaG9ydCBhY2NlcHRO
b2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChz
dGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQo
KSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9B
Q0NFUFQpCiAgICAgICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAg
ICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9TS0lQKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmgKaW5kZXggYzQ0MGMyOS4uNmEzZmU3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5oCkBAIC00NSwyMyArNDUsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBOb2RlKiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsg
fQogICAgICAgICB2b2lkIHNldEN1cnJlbnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4sIEV4Y2VwdGlv
bkNvZGUmKTsKIAotICAgICAgICBOb2RlKiBwYXJlbnROb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0g
ICAgICAgIE5vZGUqIGZpcnN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSog
bGFzdENoaWxkKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIHByZXZpb3VzU2libGlu
ZyhKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBuZXh0U2libGluZyhKU0M6OkV4ZWNT
dGF0ZSopOwotICAgICAgICBOb2RlKiBwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqKTsKLSAg
ICAgICAgTm9kZSogbmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqKTsKLQotICAgICAgICAvLyBEbyBu
b3QgY2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3Vw
cG9ydCB0aGUgT2JqZWN0aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBp
biB0aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2Vw
dGlvbnMuCi0gICAgICAgIE5vZGUqIHBhcmVudE5vZGUoKSB7IHJldHVybiBwYXJlbnROb2RlKGV4
ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkp
KTsgfQotICAgICAgICBOb2RlKiBmaXJzdENoaWxkKCkgeyByZXR1cm4gZmlyc3RDaGlsZChleGVj
U3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7
IH0KLSAgICAgICAgTm9kZSogbGFzdENoaWxkKCkgeyByZXR1cm4gbGFzdENoaWxkKGV4ZWNTdGF0
ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQot
ICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoKSB7IHJldHVybiBwcmV2aW91c1NpYmxpbmco
ZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQo
KSkpOyB9Ci0gICAgICAgIE5vZGUqIG5leHRTaWJsaW5nKCkgeyByZXR1cm4gbmV4dFNpYmxpbmco
ZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQo
KSkpOyB9Ci0gICAgICAgIE5vZGUqIHByZXZpb3VzTm9kZSgpIHsgcmV0dXJuIHByZXZpb3VzTm9k
ZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50Lmdl
dCgpKSk7IH0KLSAgICAgICAgTm9kZSogbmV4dE5vZGUoKSB7IHJldHVybiBuZXh0Tm9kZShleGVj
U3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7
IH0KKyAgICAgICAgTm9kZSogcGFyZW50Tm9kZSgpOworICAgICAgICBOb2RlKiBmaXJzdENoaWxk
KCk7CisgICAgICAgIE5vZGUqIGxhc3RDaGlsZCgpOworICAgICAgICBOb2RlKiBwcmV2aW91c1Np
YmxpbmcoKTsKKyAgICAgICAgTm9kZSogbmV4dFNpYmxpbmcoKTsKKyAgICAgICAgTm9kZSogcHJl
dmlvdXNOb2RlKCk7CisgICAgICAgIE5vZGUqIG5leHROb2RlKCk7CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRv
U2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAppbmRleCAyNjNhZWZhLi40ODA5ZWUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCkBAIC0yOSwxMiArMjksMTIgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOyAgICAgICAgCiAgICAg
W1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIE5vZGUgY3VycmVudE5vZGU7CiAKLSAg
ICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcGFyZW50Tm9kZSgpOwotICAgIFtDYWxsV2l0
aD1TY3JpcHRTdGF0ZV0gTm9kZSBmaXJzdENoaWxkKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0
YXRlXSBOb2RlIGxhc3RDaGlsZCgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBw
cmV2aW91c1NpYmxpbmcoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgbmV4dFNp
YmxpbmcoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcHJldmlvdXNOb2RlKCk7
Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIG5leHROb2RlKCk7CisgICAgTm9kZSBw
YXJlbnROb2RlKCk7CisgICAgTm9kZSBmaXJzdENoaWxkKCk7CisgICAgTm9kZSBsYXN0Q2hpbGQo
KTsKKyAgICBOb2RlIHByZXZpb3VzU2libGluZygpOworICAgIE5vZGUgbmV4dFNpYmxpbmcoKTsK
KyAgICBOb2RlIHByZXZpb3VzTm9kZSgpOworICAgIE5vZGUgbmV4dE5vZGUoKTsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260263</attachid>
            <date>2015-08-30 18:33:29 -0700</date>
            <delta_ts>2015-08-30 19:07:37 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>NodeFilter_callback_interface_wip.patch</filename>
            <type>text/plain</type>
            <size>529918</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1m
aWx0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2Nl
cHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQKaW5kZXggY2E1ZGE4NDEuLmVlN2QyMWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0
Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAgUEFTUyB3YWxrZXIu
Zmlyc3RDaGlsZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwogUEFTUyB3YWxrZXIu
bmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAogVGVzdGluZyB3aXRo
IG9iamVjdCBsYWNraW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hp
bGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBu
b3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgp
OyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyB3YWxrZXIuY3Vy
cmVudE5vZGUuaWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2Nl
cHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAn
cm9vdCcKIAogVGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlvbiBhY2NlcHROb2Rl
IHByb3BlcnR5Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5j
dGlvbi4KK1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKLVBB
U1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0
ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fs
a2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQ
QVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rpbmcgd2l0aCBmdW5j
dGlvbiBoYXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nv
bnN0YW50cy1leHBlY3RlZC50eHQKaW5kZXggNDdmYzViMi4uYmZkNjU3MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC0yNCwyMiArMjQsNiBAQCBQ
QVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0lOSEVSSVQgc2hvdWxkIGJlIDAgYW5kIGlzLgogUEFT
Uzogd2luZG93LkNTU1ZhbHVlLkNTU19QUklNSVRJVkVfVkFMVUUgc2hvdWxkIGJlIDEgYW5kIGlz
LgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNUIHNob3VsZCBiZSAyIGFuZCBp
cy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIHNob3VsZCBiZSAzIGFuZCBpcy4K
LVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91bGQgYmUgMSBhbmQgaXMuCi1QQVNT
OiBub2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9k
ZUZpbHRlci5GSUxURVJfU0tJUCBzaG91bGQgYmUgMyBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVy
LlNIT1dfQUxMIHNob3VsZCBiZSA0Mjk0OTY3Mjk1IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX1RFWFQg
c2hvdWxkIGJlIDQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0NEQVRBX1NFQ1RJT04g
c2hvdWxkIGJlIDggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0VOVElUWV9SRUZFUkVO
Q0Ugc2hvdWxkIGJlIDE2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19FTlRJVFkgc2hv
dWxkIGJlIDMyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19QUk9DRVNTSU5HX0lOU1RS
VUNUSU9OIHNob3VsZCBiZSA2NCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQ09NTUVO
VCBzaG91bGQgYmUgMTI4IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCBz
aG91bGQgYmUgMjU2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBF
IHNob3VsZCBiZSA1MTIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UIHNob3VsZCBiZSAxMDI0IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19OT1RB
VElPTiBzaG91bGQgYmUgMjA0OCBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuTm9kZUZpbHRlci5GSUxU
RVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5Ob2RlRmlsdGVyLkZJ
TFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgogUEFTUzogd2luZG93Lk5vZGVGaWx0ZXIu
RklMVEVSX1NLSVAgc2hvdWxkIGJlIDMgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbAppbmRleCBkY2UyNTg4Li4xOTViYmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9jb25zdGFudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhLCBiKQogICAgIHByaW50
KG1lc3NhZ2UsIGNvbG9yKTsKIH0KIAotdmFyIGNzc1J1bGUsIGNzc1ZhbHVlLCBub2RlRmlsdGVy
LCBldmVudDsKK3ZhciBjc3NSdWxlLCBjc3NWYWx1ZSwgZXZlbnQ7CiAKIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpAQCAtNjYsMzQgKzY2LDYgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICBzaG91bGRCZSgid2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNU
IiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIiwgMyk7CiAK
LSAgICB2YXIgbm9kZUl0ZXJhdG9yOwotICAgIHRyeSB7Ci0gICAgICAgIG5vZGVJdGVyYXRvciA9
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7IHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7IH0sIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwotICAg
IH0gY2F0Y2goZSkgewotICAgICAgICBub2RlSXRlcmF0b3IgPSBuZXcgT2JqZWN0KCk7Ci0gICAg
fQotICAgIAotICAgIG5vZGVGaWx0ZXIgPSBub2RlSXRlcmF0b3IuZmlsdGVyOwotICAgIHNob3Vs
ZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQiLCAxKTsKLSAgICBzaG91bGRCZSgibm9kZUZp
bHRlci5GSUxURVJfUkVKRUNUIiwgMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuRklMVEVS
X1NLSVAiLCAzKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0FMTCIsIDB4RkZGRkZG
RkYpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRUxFTUVOVCIsIDB4MDAwMDAwMDEp
OwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFIiwgMHgwMDAwMDAwMik7
Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19URVhUIiwgMHgwMDAwMDAwNCk7Ci0gICAg
c2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OIiwgMHgwMDAwMDAwOCk7Ci0g
ICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFlfUkVGRVJFTkNFIiwgMHgwMDAwMDAx
MCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFkiLCAweDAwMDAwMDIwKTsK
LSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iLCAw
eDAwMDAwMDQwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0NPTU1FTlQiLCAweDAw
MDAwMDgwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UIiwgMHgwMDAw
MDEwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBFIiwgMHgw
MDAwMDIwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9GUkFHTUVO
VCIsIDB4MDAwMDA0MDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfTk9UQVRJT04i
LCAweDAwMDAwODAwKTsKLQogICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5GSUxURVJf
QUNDRVBUIiwgMSk7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5Ob2RlRmlsdGVyLkZJTFRFUl9SRUpF
Q1QiLCAyKTsKICAgICBzaG91bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIuRklMVEVSX1NLSVAiLCAz
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbAppbmRl
eCA5N2QyZmFkLi4wYjM5ZGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy5odG1sCkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRy
eSB7CiAgICAgICBub2RlRmlsdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgZnVuY3Rpb24gKCkge30sIGZhbHNlKS5maWx0
ZXI7CiAgICAgfSBjYXRjaChlKSB7fQotICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5w
cm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOworICAgIHNob3VsZEJl
KCJGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOwog
CiAgICAgb3JpZ2luYWxOb2RlUHJvdG90eXBlID0gd2luZG93Lk5vZGUucHJvdG90eXBlOwogICAg
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWdjLmh0bWwKaW5kZXggMDY0OWFkMi4u
YTIwNGM0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2Mu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sCkBAIC0z
LDggKzMsOCBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgIAotdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgMCwgZmFsc2UpOwotdmFyIHdhbGtl
ciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAwLCBmYWxzZSk7Cit2YXIgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsLCBmYWxzZSk7Cit2
YXIgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwsIGZhbHNlKTsKIAogLy8gY3JlYXRlIGxvdHMgb2Ygb2JqZWN0
cyB0byBmb3JjZSBhIGdhcmJhZ2UgY29sbGVjdGlvbgogIHZhciBpID0gMDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDVlNTQ2ODYuLmQ0YTk4YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMzksOCArMzksNiBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJs
ZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDBdCiAqIG5hbWUKIFtDb25maWd1cmFi
bGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiBOb2Rl
RmlsdGVyXQotKiBwcm90b3R5cGUKLVtDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBm
YWxzZSwgd3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogW29iamVjdCBOb2RlRmlsdGVyUHJvdG90eXBl
XV0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0CmluZGV4IGQyMTg2NDUuLmU3N2M0YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTE4OTAsNDEg
KzE4OTAsNDEgQEAgUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlMKIFBBU1MgVHJlZVdhbGtlciBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRl
ci5TSE9XX0FMTCwgbnVsbCwgZmFsc2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmlvdXNO
b2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoOSkgCiBQQVNTIFRyZWVXYWxrZXIgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVGaWx0ZXIuU0hP
V19BTEwsIG51bGwsIGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHROb2RlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoMTApIAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9mYWxzZTogTm9kZUZpbHRl
ciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6
IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJw
cm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1JF
SkVDVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29u
c3RhbnQgRklMVEVSX1JFSkVDVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRf
ZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IEZJTFRFUl9SRUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0FMTCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3Nl
cnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVy
dHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2Rl
RmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBvYmpl
Y3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVy
IGludGVyZmFjZTogY29uc3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBv
biBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19URVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9k
ZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBm
YWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19U
RVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1G
QUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04g
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIG9iamVjdCAKLUZB
SUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBv
biBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hv
dWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRy
dWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVS
RU5DRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEg
InByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19QUk9D
RVNTSU5HX0lOU1RSVUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3Qg
aGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJ
T04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEg
InByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9D
VU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfRE9DVU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0
X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5
IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0RPQ1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBO
b2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBFIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBO
b2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVk
IGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9X
X0RPQ1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UX0ZSQUdNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxz
ZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBl
Y3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19ET0NVTUVOVF9GUkFHTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJm
YWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9U
QVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9k
ZShOb2RlKSBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3Rv
dHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShO
b2RlKSAKIEZBSUwgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIERP
TVRva2VuTGlzdCBleHBlY3RlZCAiW29iamVjdCBGdW5jdGlvbl0iIGJ1dCBnb3QgIltvYmplY3Qg
RE9NVG9rZW5MaXN0Q29uc3RydWN0b3JdIgogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fs
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9E
b2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA3MmVhZDUzLi4zOGVm
MDA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vbm9kZXMvRG9j
dW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0ZWQu
dHh0CkBAIC0zLDUgKzMsNSBAQCBQQVNTIFJlcXVpcmVkIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVl
V2Fsa2VyIHNob3VsZCBiZSByZXF1aXJlZC4KIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRzIHRvIGNy
ZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgxIHBhc3NlZCkuIAogUEFTUyBPcHRp
b25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDIg
cGFzc2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNo
b3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIG51bGwpLiAKLUZBSUwgT3B0aW9uYWwgYXJndW1l
bnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgzIHBhc3NlZCwgZnVu
Y3Rpb24pLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSBv
cHRpb25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4
cGVjdGVkLnR4dAppbmRleCA0ZDU5ODZjNC4uOGE1NmQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLWV4cGVjdGVkLnR4dApAQCAtNSw3NDMgKzUsNzQzIEBAIFBBU1MgY3JlYXRlTm9kZUl0ZXJh
dG9yKCkgd2l0aCBudWxsIGFzIGFyZ3VtZW50cwogRkFJTCBjcmVhdGVOb2RlSXRlcmF0b3IoKSB3
aXRoIHVuZGVmaW5lZCBhcyBhcmd1bWVudHMgYXNzZXJ0X2VxdWFsczogd2hhdFRvU2hvdyBleHBl
Y3RlZCA0Mjk0OTY3Mjk1IGJ1dCBnb3QgMAogUEFTUyBQcm9wYWdhdGUgZXhjZXB0aW9uIGZyb20g
ZmlsdGVyIGZ1bmN0aW9uIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
YywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
YywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRD
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0
eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5
cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3RE
aXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0
ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25D
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENv
bW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Nm
cmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJz
YWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9k
b20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CmluZGV4IDlhYmVkMzAuLjY1NTc4
NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwv
VHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
ZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3NDIgKzEsNzQzIEBA
CiAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3Vt
ZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJUcmVlV2Fs
a2VyIHRlc3RzIiBidXQgZ290IG51bGwKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQg
VGV4dCBub2RlICJXeHl6YWJjZCIgYnV0IGdvdCBudWxsCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3Rl
ZCBUZXh0IG5vZGUgIkVmZ2hpamtsIiBidXQgZ290IENvbW1lbnQgbm9kZSA8IS0tIkNvbW1lbnRl
ciIgYW5kICJjb21tZW50YXRvciIgbWVhbiBkaWZmZXJlbnQgdGhpbmdzLiAgSSd2Li4uLS0+CiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJkbyByZSBt
aSBmYSBzbyBsYSB0aSIgYnV0IGdvdCBDb21tZW50IG5vZGUgPCEtLUkgbWFsaWNpb3VzbHkgY3Jl
YXRlZCBhIGNvbW1lbnQgdGhhdCB3aWxsIGJyZWFrIGluY2F1dGlvdS4uLi0tPgogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRU
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Y29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVz
dERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRT
aWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJJamtsbW5vcAorIiBidXQgZ290IENvbW1lbnQg
bm9kZSA8IS0tQWxwaGFiZXQgc291cD8tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVt
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50
LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDYwNzBlMC4uZDc3NjVj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNjEsNyArMTE2MSw2IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05v
ZGVJdGVyYXRvckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVPclN0cmluZy5jcHAK
QEAgLTE0MzcsNyArMTQzNiw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vTmFtZWRG
bG93Q29sbGVjdGlvbi5jcHAKICAgICBkb20vTmFtZWROb2RlTWFwLmNwcAogICAgIGRvbS9Ob2Rl
LmNwcAotICAgIGRvbS9Ob2RlRmlsdGVyLmNwcAogICAgIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9u
LmNwcAogICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCiAgICAgZG9tL05vZGVPclN0cmluZy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4
IDA1MDk2NGYuLmI3NjJkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagpAQCAtMTQ1NTcsMjAgKzE0NTU3LDYgQEAKICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTm9kZUZpbHRlci5jcHAiPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2Vf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE5vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE4
NDc5LDIwICsxODQ2NSw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCI+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDdXN0
b20uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAg
LTIyNDk3LDcgKzIyNDY5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXEpTTXV0YXRpb25DYWxsYmFjay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxiaW5kaW5nc1xqc1xKU05vZGVPclN0cmluZy5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xT
Y2hlZHVsZWRBY3Rpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA4YzQ4MTczLi5lMWY5ZWIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCkBAIC00NDA0LDkgKzQ0MDQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJpbmRp
bmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIj4KLSAgICAgIDxGaWx0
ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5jcHAiPgogICAgICAg
PEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTE0OTgs
OSArMTE0OTUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNO
b2RlQ3VzdG9tLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmgiPgotICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgot
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNc
SlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYjRlNzMuLjhlMjQ0MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2
ODQsNiArMjY4NCw3IEBACiAJCTgzMDAzMEY1MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5lcmljQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODMwMDMwRjMxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1M
Q29sbGVjdGlvbi5jcHAgKi87IH07CiAJCTgzMDAzMEY2MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5l
cmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzMDAzMEY0MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVk
SFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODMwMDMwRjgxQjdEM0I3ODAwRUQzQUFDIC8qIENh
Y2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rp
b24uaCAqLzsgfTsKKwkJODMwNkVGRjExQjhCQ0VBNTAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMw
NkVGRjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwICovOyB9OwogCQk4
MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzMzE5RDhFNTUx
MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggKi87IH07CiAJCTgzMkI4NDM2MTlE
OEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQjg0MzUxOUQ4RTU3NDAwQjI2MDU1
IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgKi87IH07CiAJCTgzNDhCRkFCMUI4NTcyOTgw
MDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM0OEJGQTkxQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29s
bGVjdGlvbi5jcHAgKi87IH07CkBAIC0yNjk3LDYgKzI2OTgsNyBAQAogCQk4Mzg2QTk3MDE5RjYx
RTRGMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzODZBOTZFMTlGNjFFNEYwMEUxRUM0QSAvKiBTdHlsZUJ1
aWxkZXIuY3BwICovOyB9OwogCQk4MzlBQUZFQzFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM5QUFGRUExQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmNwcCAqLzsgfTsKIAkJ
ODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQjFBMEMwQzhEMDA2MDVG
OTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsgfTsKKwkJODNCMkQxNzUxQjhCQ0Q2QTAwQTAyRTQ3
IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVy
LmggKi87IH07CiAJCTgzQjk2ODdCMTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJDb252
ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
Qjk2ODc5MTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCAqLzsgfTsK
IAkJODNDMDVBNUExQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5j
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNDMDVBNTgxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlv
bnMuY3BwICovOyB9OwogCQk4M0MwNUE1QjFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNDMDVBNTkxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9y
dGhhbmRGdW5jdGlvbnMuaCAqLzsgfTsKQEAgLTI3MTgsNiArMjcyMCw3IEBACiAJCTgzQzFENDM0
MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzFENDIyMTc4RDVBQjQw
MDE0MUU2OCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaCAqLzsgfTsKIAkJODNDMUQ0
MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzFENDIzMTc4RDVBQjQwMDE0MUU2
OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmggKi87IH07CiAJCTgzQzFENDM2MTc4RDVBQjUwMDE0
MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyNDE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNl
Z01vdmV0b1JlbC5oICovOyB9OworCQk4M0YxMjA2QjFCOEMxMDQ3MDBENzVGNjMgLyogSlNOb2Rl
RmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3Bw
ICovOyB9OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0
MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyB9OwogCQk4NDE5RDJB
ODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE1MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovOyB9OwogCQk4NDE5RDJB
OTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CkBAIC0yOTA5LDcgKzI5
MTIsNiBAQAogCQk4NTQyQTc5ODBBRTVDOTQzMDBERjU4REYgLyogSlNTVkdOdW1iZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3NEQxRjMwQURF
NjEyMjAwNENCQTExIC8qIEpTU1ZHTnVtYmVyLmNwcCAqLzsgfTsKIAkJODU0MkE3OTkwQUU1Qzk0
NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGMjBBREU2MTIyMDA0Q0JBMTEg
LyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLzsgfTsKIAkJODU0MkE3OUEwQUU1Qzk0
NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NzREMUYxMEFERTYxMjIwMDRDQkEx
MSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi87IH07Ci0JCTg1NEZFNzMwMEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmls
dGVyLmNwcCAqLzsgfTsKIAkJODU0RkU3MzEwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI3
MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi87IH07CiAJCTg1NEZFNzMyMEEyMjk3
QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI4MEEyMjk3QkUwMDU4RDdBRCAvKiBO
b2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsgfTsKIAkJODU0RkU3MzMwQTIyOTdCRTAwNThEN0FE
IC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI5MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29u
ZGl0aW9uLmggKi87IH07CkBAIC01NDg4LDkgKzU0OTAsNiBAQAogCQlCQ0IxNkMyODA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFhTTFN0eWxlU2hlZXQuaCAqLzsgfTsKIAkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAgKi87IH07CiAJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNCNzczNjEw
QzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM1RTBDMTc4NTNEMDAxMzJC
QTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsgfTsKLQkJQkNCNzczNjIwQzE3ODUz
RDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNzczNUYwQzE3ODUzRDAwMTMyQkE0IC8qIEpT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oICovOyB9OwotCQlCQ0I3NzM2MzBDMTc4NTNEMDAxMzJCQTQg
LyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJD
dXN0b20uY3BwICovOyB9OwogCQlCQ0I5MkQ0RjEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2Vs
aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I5
MkQ0RTEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNCQjhBQjkxM0YxQUZCMDAwNzM0REYw
IC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0JCOEFCQTEzRjFB
RkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JCOEFCNjEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50
ZXJ2YWxUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTEwMDUzLDYgKzEwMDUyLDcgQEAKIAkJODMwMDMwRjMxQjdEMzNBNjAwRUQzQUFDIC8q
IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzAwMzBGNDFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdl
bmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSFRNTENvbGxlY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMwNkVGRjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5h
dGl2ZU5vZGVGaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TmF0aXZlTm9kZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMkI4
NDMzMTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMkI4NDM1MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmlt
YXRlRWxlbWVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODM0OEJGQTkxQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGFzc0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwOTAsNiArMTAwOTAsOCBAQAogCQk4M0MxRDQyNDE3
OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTW92ZXRvUmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRDI2RDNDMUFGRENDNTAwMDFCMzg3MyAvKiBDaGlsZE5vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IENoaWxkTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDI2RDNE
MUFGRENDNTAwMDFCMzg3MyAvKiBQYXJlbnROb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQYXJlbnROb2RlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8q
IE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0
aXZlTm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0YxMjA2QTFC
OEMxMDM2MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0
ZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0
cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5RDJBNTEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRo
Qnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
UGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MDI2NSw3ICsxMDI2Nyw2IEBACiAJCTg1NDA3NTY2MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1M
T3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRN
TE9wdGlvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0MDc1Njcw
QUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxPcHRpb25FbGVtZW50Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2ODBBRDZDQkY5MDA2MjBDNTcgLyogRE9N
SFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4NTRGRTcyNjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZUZpbHRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZFNzI3MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2Rl
RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlRmlsdGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZFNzI4MEEyMjk3QkUwMDU4RDdBRCAv
KiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODU0RkU3MjkwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVGaWx0ZXJDb25kaXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDk1LDkgKzEzMDk2LDYgQEAKIAkJQkNC
MTZDMEYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFhTTFN0eWxlU2hlZXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJl
c291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRp
bmcgPSAwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNw
cDsgfTsKIAkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0I3NzM1RTBDMTc4NTNEMDAxMzJC
QTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU05vZGVGaWx0ZXJD
b25kaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNCNzczNjAwQzE3ODUz
RDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNCOTJENEUxMjkzNTUwQjAwQzgzODdGIC8qIEZvbnRCYXNlbGluZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QmFzZWxpbmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCQjhBQjUxM0YxQUZCMDAwNzM0REYwIC8qIFBPRElu
dGVydmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBPREludGVydmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAv
KiBQT0RJbnRlcnZhbFRyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9E
SW50ZXJ2YWxUcmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTM5MSw2ICsy
MTM4OSw3IEBACiAJCQkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hl
bGwuY3BwICovLAogCQkJCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1No
ZWxsLmggKi8sCiAJCQkJNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5o
ICovLAorCQkJCTgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20u
Y3BwICovLAogCQkJCTdDOTFBMzhEMUI0OThBQkUwMDNGOUVGQSAvKiBKU05vZGVPclN0cmluZy5j
cHAgKi8sCiAJCQkJN0M5MUEzOEUxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9kZU9yU3RyaW5nLmgg
Ki8sCiAJCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAq
LywKQEAgLTIxNTc0LDcgKzIxNTczLDYgQEAKIAkJCQkwNzM3OTRFNzE5RUUzMzVDMDBFNUEwNDUg
LyogSlNOYXZpZ2F0b3JDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBB
MiAvKiBKU05vZGVDdXN0b20uY3BwICovLAogCQkJCUJDOTQzOUMyMTE2Q0Y0OTQwMDQ4Qzc1MCAv
KiBKU05vZGVDdXN0b20uaCAqLywKLQkJCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNO
b2RlRmlsdGVyQ3VzdG9tLmNwcCAqLywKIAkJCQkxQTc1MEREMzBBOTBFNzI5MDAwRkYyMTUgLyog
SlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjYxMEMxN0FBNjcwMDVDOTBB
MiAvKiBKU05vZGVMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQlBRDIwQjE4QzE4RTlEMjE2MDA1QTgw
ODMgLyogSlNOb2RlTGlzdEN1c3RvbS5oICovLApAQCAtMjE4OTUsOCArMjE4OTMsNiBAQAogCQkJ
CTkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuaCAqLywKIAkJCQk5
MzVGNDU0MDBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgKi8sCiAJ
CQkJOTM1RjQ1NDEwRjdDM0I1RjAwRDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIuaCAqLywK
LQkJCQlCQ0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNw
cCAqLywKLQkJCQlCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0
aW9uLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDYWxsYmFjayBPYmplY3RzIjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzQwNywxMCArMjM0MDMsMTEgQEAKIAkJCQk4NUFDQTlG
OTBBOUI2MzEwMDA2NzFFOTAgLyogTmFtZWROb2RlTWFwLmlkbCAqLywKIAkJCQlBODE4NzIxOTA5
NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmNwcCAqLywKIAkJCQlBODE4NzIxMzA5NzdE
M0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmggKi8sCisJCQkJODMwNkVGRjAxQjhCQ0U3QzAw
MzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwICovLAorCQkJCTgzRTk1OUUxMUI4QkMyMkIw
MDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8sCiAJCQkJQThDNEE3RUUwOUQ1NjMyNzAw
MDNBQzhEIC8qIE5vZGUuY3BwICovLAogCQkJCTE0MTE1QjUxMDlGODRCNzEwMENBNEZDMSAvKiBO
b2RlLmggKi8sCiAJCQkJMTREQzBEMEIwOUZFQ0ZBNDAwN0IwMjM1IC8qIE5vZGUuaWRsICovLAot
CQkJCTg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCAqLywKIAkJCQk4
NTRGRTcyNzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5oICovLAogCQkJCTE0MTE1QUY5
MDlGODQ3RDYwMENBNEZDMSAvKiBOb2RlRmlsdGVyLmlkbCAqLywKIAkJCQk4NTRGRTcyODBBMjI5
N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8sCkBAIC0yNDc3Miw2ICsy
NDc2OSw3IEBACiAJCQkJODUzQkY0REIwQUJCNkI1NTAwODY0N0JCIC8qIERPTU5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1NDA3NTI2MEFENkM2NjcwMDYyMEM1NyAvKiBET01Ob2RlRmlsdGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUI0OThGQjBBREIzNDAyMDA5MjVDQkIgLyogRE9NTm9k
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcg
LyogTmF0aXZlTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU1MjZDMzcwQUIwQTE3
RTAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwQjQx
QzIwQUQ5RTdFNzAwQTZFRDRGIC8qIERPTU5vZGVJdGVyYXRvckludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NUFDQUE4RDBBOUI3NTlDMDA2NzFFOTAgLyogRE9NTm9kZUxpc3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU2NTQsNyArMjU2NTIsNiBAQAogCQkJCTA3M0JFMzREMTdEMTdFN0Ew
MDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1c3RvbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRl
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNCNzczNjIwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9k
ZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NTBEOEUwQTkwRTUyMTAw
MEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q5QzJDMzBD
MTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQyMEIx
OEQxOEU5RDIzNzAwNUE4MDgzIC8qIEpTTm9kZUxpc3RDdXN0b20uaCBpbiBIZWFkZXJzICovLApA
QCAtMjg5MDUsNiArMjg5MDIsNyBAQAogCQkJCUJDMkVENkJDMEM2QkQyRjAwMDkyMEJGRiAvKiBK
U0F0dHJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVFOUQxMkIwM0VFMTAwM0E1
ODNBIC8qIEpTQXVkaW9CdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRGN0U5QzMxM0FD
MjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk4M0YxMjA2QjFCOEMxMDQ3MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZEQTE1RTlGMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBQUFGMzEyQjAyRUU0MDBE
Q0YzM0IgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkRBMTVFQTUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjkxODIsNiArMjkxODAsNyBAQAogCQkJCTUxMUVGMkQxMTdGMEZERjEw
MEU0RkExNiAvKiBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxMUVGMkM4MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQk9wZW5EQlJlcXVlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTExRUYyQzkxN0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk4MzA2RUZGMTFCOEJDRUE1MDAzMUQwMzIgLyogTmF0aXZl
Tm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJDQTE3RjBGRDM1MDBFNEZB
MTYgLyogSlNJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJDQjE3
RjBGRDM1MDBFNEZBMTYgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM2QzQ5RjMwRDdEQkEwNTAwRkZBNTU4IC8qIEpTSW1hZ2VDb25zdHJ1Y3Rvci5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI5MjQ3LDggKzI5MjQ2LDYgQEAKIAkJCQkxNERDMEQzNzA5
RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDlDMjY0
MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQxMTVCNzIwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlCQ0I3NzM2MTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQjc3MzYzMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NTBEOEQwQTkwRTUyMTAw
MEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzUwREQ0
MEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0Q5QzJDMjBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI5Nzg1LDcgKzI5NzgyLDYgQEAKIAkJCQkyNjc3MjYwMDFBNUIzQUQ5MDAz
QzI0REQgLyogTkZBVG9ERkEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRjQzRTAwRTY3NDEx
MDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRB
ODAwMDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTg1NEZF
NzMwMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg1NEZFNzM0MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlSXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEZGQzAyMkIxNjQzQjcxMDAwNEUxNjM4IC8qIE5vZGVS
YXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5k
ZXggYWRmZDhjMS4uZTBhYmI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
Z29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKQEAgLTI5
LDcgKzI5LDcgQEAgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb246On5HT2JqZWN0Tm9kZUZpbHRl
ckNvbmRpdGlvbigpCiAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QobV9maWx0ZXIuZ2V0
KCkpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0ZXIiLCBudWxscHRyKTsKIH0KIAotc2hvcnQgR09i
amVjdE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2Rl
KiBub2RlKSBjb25zdAorc2hvcnQgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5v
ZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBO
b2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDYx
MjgwMjUuLjUzNjZhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTM2LDcgKzM2LDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHT2JqZWN0Tm9kZUZpbHRl
ckNvbmRpdGlvbihmaWx0ZXIpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5v
ZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7CisgICAgdmlydHVhbCBzaG9ydCBhY2Nl
cHROb2RlKE5vZGUqKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBHT2JqZWN0Tm9k
ZUZpbHRlckNvbmRpdGlvbihXZWJLaXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Ob2RlRmlsdGVyLmNw
cAppbmRleCAyNThmYzRhLi5kODBmZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKQEAgLTIwLDcgKzIwLDcg
QEAKICNpbmNsdWRlICJXZWJLaXRET01Ob2RlRmlsdGVyLmgiCiAKICNpbmNsdWRlICJHT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKKyNpbmNsdWRl
ICJOYXRpdmVOb2RlRmlsdGVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZS5oIgogI2luY2x1
ZGUgIldlYktpdERPTU5vZGVGaWx0ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTcyLDcgKzcyLDcgQEAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNvcmUoV2Vi
S2l0RE9NTm9kZUZpbHRlciogbm9kZUZpbHRlcikKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2Rl
RmlsdGVyPiBjb3JlTm9kZUZpbHRlciA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGVGaWx0ZXIq
PihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChub2RlRmlsdGVyKSwgIndlYmtpdC1jb3JlLW5v
ZGUtZmlsdGVyIikpOwogICAgIGlmICghY29yZU5vZGVGaWx0ZXIpIHsKLSAgICAgICAgY29yZU5v
ZGVGaWx0ZXIgPSBXZWJDb3JlOjpOb2RlRmlsdGVyOjpjcmVhdGUoV2ViQ29yZTo6R09iamVjdE5v
ZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZShub2RlRmlsdGVyKSk7CisgICAgICAgIGNvcmVOb2Rl
RmlsdGVyID0gV2ViQ29yZTo6TmF0aXZlTm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6OkdPYmpl
Y3ROb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUobm9kZUZpbHRlcikpOwogICAgICAgICBub2Rl
RmlsdGVyTWFwKCkuYWRkKGNvcmVOb2RlRmlsdGVyLmdldCgpLCBub2RlRmlsdGVyKTsKICAgICAg
ICAgZ19vYmplY3Rfd2Vha19yZWYoR19PQkpFQ1Qobm9kZUZpbHRlciksIG5vZGVGaWx0ZXJPYmpl
Y3REZXN0cm95ZWRDYWxsYmFjaywgY29yZU5vZGVGaWx0ZXIuZ2V0KCkpOwogICAgICAgICBnX29i
amVjdF9zZXRfZGF0YShHX09CSkVDVChub2RlRmlsdGVyKSwgIndlYmtpdC1jb3JlLW5vZGUtZmls
dGVyIiwgY29yZU5vZGVGaWx0ZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMWI1ZTk1Yi4uYjVjNWZmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3Bw
CkBAIC0xMTQsNyArMTE0LDYgQEAKICNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05v
ZGVDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiCiAjaW5j
bHVkZSAiSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVJdGVyYXRvckN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlTGlzdEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKaW5kZXggZDk4ZTYzMi4uYzQ3ZWY0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZUlu
c3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAgICAgCkBAIC02NCwxNCArNjUsMTggQEAgSlNWYWx1ZSBKU0NhbGxi
YWNrRGF0YTo6aW52b2tlQ2FsbGJhY2soSlNWYWx1ZSB0aGlzVmFsdWUsIE1hcmtlZEFyZ3VtZW50
QnVmZmVyJgogICAgICAgICBjYWxsVHlwZSA9IGNhbGxiYWNrKCktPm1ldGhvZFRhYmxlKCktPmdl
dENhbGxEYXRhKGNhbGxiYWNrKCksIGNhbGxEYXRhKTsKICAgICB9CiAgICAgaWYgKGNhbGxUeXBl
ID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICBpZiAobWV0aG9kID09IENhbGxiYWNrVHlwZTo6
RnVuY3Rpb24pCisgICAgICAgIGlmIChtZXRob2QgPT0gQ2FsbGJhY2tUeXBlOjpGdW5jdGlvbikg
eworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBFeGNlcHRpb246OmNyZWF0ZShleGVj
LT52bSgpLCBjcmVhdGVUeXBlRXJyb3IoZXhlYykpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWUoKTsKKyAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghZnVuY3Rpb25OYW1lLmlzTnVsbCgp
KTsKICAgICAgICAgZnVuY3Rpb24gPSBjYWxsYmFjaygpLT5nZXQoZXhlYywgZnVuY3Rpb25OYW1l
KTsKICAgICAgICAgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOwot
ICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKQorICAgICAgICBpZiAoY2FsbFR5
cGUgPT0gQ2FsbFR5cGVOb25lKSB7CisgICAgICAgICAgICByZXR1cm5lZEV4Y2VwdGlvbiA9IEV4
Y2VwdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGNyZWF0ZVR5cGVFcnJvcihleGVjKSk7CiAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgQVNTRVJU
KCFmdW5jdGlvbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdiNDExOWEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
b2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLS8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCi0gKiAg
Q29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIKLQotI2luY2x1ZGUgIkpTTWFp
blRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIkpTTm9kZS5oIgotI2luY2x1ZGUgIkpTTm9k
ZUZpbHRlci5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vy
cm9yLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1KU05vZGVGaWx0ZXJDb25kaXRpb246OkpTTm9k
ZUZpbHRlckNvbmRpdGlvbihWTSYsIE5vZGVGaWx0ZXIqIG93bmVyLCBKU1ZhbHVlIGZpbHRlcikK
LSAgICA6IG1fZmlsdGVyKGZpbHRlci5pc09iamVjdCgpID8gV2VhazxKU09iamVjdD4oanNDYXN0
PEpTT2JqZWN0Kj4oZmlsdGVyKSwgJm1fd2Vha093bmVyLCBvd25lcikgOiBudWxscHRyKQotewot
fQotCi1zaG9ydCBKU05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIE5vZGUqIGZpbHRlck5vZGUpIGNvbnN0Ci17Ci0gICAgSlNMb2NrSG9sZGVyIGxv
Y2soZXhlYyk7Ci0KLSAgICBpZiAoIW1fZmlsdGVyKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRl
cjo6RklMVEVSX0FDQ0VQVDsKLQotICAgIC8vIEV4ZWMgaXMgbnVsbCBpZiB3ZSd2ZSBiZWVuIGNh
bGxlZCBmcm9tIGEgbm9uLUphdmFTY3JpcHQgbGFuZ3VhZ2UgYW5kIHRoZSBkb2N1bWVudAotICAg
IC8vIGlzIG5vIGxvbmdlciBhYmxlIHRvIHJ1biBKYXZhU2NyaXB0IChlLmcuLCBpdCdzIGRpc2Nv
bm5lY3RlZCBmcm9tIGl0cyBmcmFtZSkuCi0gICAgaWYgKCFleGVjKQotICAgICAgICByZXR1cm4g
Tm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKLQotICAgIEpTVmFsdWUgZmlsdGVyID0gbV9maWx0
ZXIuZ2V0KCk7Ci0gICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUg
PSBnZXRDYWxsRGF0YShmaWx0ZXIsIGNhbGxEYXRhKTsKLSAgICBpZiAoY2FsbFR5cGUgPT0gQ2Fs
bFR5cGVOb25lKSB7Ci0gICAgICAgIGZpbHRlciA9IGZpbHRlci5nZXQoZXhlYywgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyhleGVjLCAiYWNjZXB0Tm9kZSIpKTsKLSAgICAgICAgY2FsbFR5cGUgPSBn
ZXRDYWxsRGF0YShmaWx0ZXIsIGNhbGxEYXRhKTsKLSAgICAgICAgaWYgKGNhbGxUeXBlID09IENh
bGxUeXBlTm9uZSkgewotICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVj
LCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIk5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUg
YW4gYWNjZXB0Tm9kZSBmdW5jdGlvbiIpKTsKLSAgICAgICAgICAgIHJldHVybiBOb2RlRmlsdGVy
OjpGSUxURVJfUkVKRUNUOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJnczsKLSAgICAvLyBGSVhNRTogVGhlIG5vZGUgc2hvdWxkIGhhdmUgdGhlIHByb3Rv
dHlwZSBjaGFpbiB0aGF0IGNhbWUgZnJvbSBpdHMgZG9jdW1lbnQsIG5vdAotICAgIC8vIHdoYXRl
dmVyIHByb3RvdHlwZSBjaGFpbiBtaWdodCBiZSBvbiB0aGUgd2luZG93IHRoaXMgZmlsdGVyIGNh
bWUgZnJvbS4gQnVnIDI3NjYyCi0gICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBkZXByZWNhdGVk
R2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBmaWx0ZXJOb2RlKSk7Ci0gICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JF
SkVDVDsKLQotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpjYWxsKGV4ZWMsIGZpbHRlciwgY2Fs
bFR5cGUsIGNhbGxEYXRhLCBtX2ZpbHRlci5nZXQoKSwgYXJncyk7Ci0gICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsK
LQotICAgIGludCBpbnRSZXN1bHQgPSByZXN1bHQudG9JbnQzMihleGVjKTsKLSAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVK
RUNUOwotCi0gICAgcmV0dXJuIGludFJlc3VsdDsKLX0KLQotYm9vbCBKU05vZGVGaWx0ZXJDb25k
aXRpb246OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0g
ICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KGNvbnRleHQpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmEx
YmUzLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRl
ckNvbmRpdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRlZiBKU05vZGVGaWx0ZXJDb25kaXRp
b25faAotI2RlZmluZSBKU05vZGVGaWx0ZXJDb25kaXRpb25faAotCi0jaW5jbHVkZSAiTm9kZUZp
bHRlckNvbmRpdGlvbi5oIgotI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgotI2luY2x1ZGUgPGhlYXAv
V2Vha0lubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KLSNpbmNsdWRl
IDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBOb2RlOwotICAgIGNsYXNzIE5vZGVGaWx0
ZXI7Ci0KLSAgICBjbGFzcyBKU05vZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJsaWMgTm9kZUZpbHRl
ckNvbmRpdGlvbiB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPEpTTm9kZUZpbHRl
ckNvbmRpdGlvbj4gY3JlYXRlKEpTQzo6Vk0mIHZtLCBOb2RlRmlsdGVyKiBvd25lciwgSlNDOjpK
U1ZhbHVlIGZpbHRlcikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSlNOb2RlRmlsdGVyQ29uZGl0aW9uKHZtLCBvd25lciwgZmlsdGVyKSk7Ci0gICAgICAgIH0K
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIEpTTm9kZUZpbHRlckNvbmRpdGlvbihKU0M6OlZNJiwg
Tm9kZUZpbHRlciogb3duZXIsIEpTQzo6SlNWYWx1ZSBmaWx0ZXIpOwotCi0gICAgICAgIHZpcnR1
YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKLQotICAg
ICAgICBjbGFzcyBXZWFrT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewotICAg
ICAgICAgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKLSAg
ICAgICAgfTsKLSAgICAgICAgV2Vha093bmVyIG1fd2Vha093bmVyOwotICAgICAgICBtdXRhYmxl
IEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX2ZpbHRlcjsKLSAgICB9OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBKU05vZGVGaWx0ZXJDb25kaXRpb25faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKaW5kZXgg
NzA1MzNkYi4uOWYzMDBjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsNDEgKzEwLDU4IEBACiAgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm9kZUZpbHRlci5oIgogCi0jaW5jbHVkZSAi
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisjaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKKyNp
bmNsdWRlICJKU05vZGUuaCIKKyNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdm9pZCBKU05vZGVGaWx0ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKEpT
Qzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZp
bXBsKCkpOwotfQordXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotUmVmUHRyPE5vZGVGaWx0ZXI+IEpT
Tm9kZUZpbHRlcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCisv
LyBGSVhNRTogVGhlIGJpbmRpbmdzIGdlbmVyYXRvciBpcyBjdXJyZW50bHkgbm90IGFibGUgdG8g
Z2VuZXJhdGUKKy8vIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxzIGlmIHRoZXkgcmV0dXJuIHNvbWV0
aGluZyBlbHNlIHRoYW4gYQorLy8gYm9vbGVhbi4KK3VpbnQxNl90IEpTTm9kZUZpbHRlcjo6YWNj
ZXB0Tm9kZShOb2RlKiBub2RlKQogewotICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU05vZGVGaWx0
ZXI6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiAmSlNDOjpqc0Nhc3Q8SlNOb2RlRmlsdGVyKj4o
YXNPYmplY3QodmFsdWUpKS0+aW1wbCgpOworICAgIFJlZjxKU05vZGVGaWx0ZXI+IHByb3RlY3Qo
KnRoaXMpOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2sobV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+
dm0oKSk7CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT5n
bG9iYWxFeGVjKCk7CisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICBhcmdzLmFw
cGVuZCh0b0pTKGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCksIG5vZGUpKTsKKyAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJf
UkVKRUNUOworCisgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAg
ICBKU1ZhbHVlIHZhbHVlID0gbV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCBKU0NhbGxiYWNr
RGF0YTo6Q2FsbGJhY2tUeXBlOjpGdW5jdGlvbk9yT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGV4ZWMsICJhY2NlcHROb2RlIiksIHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICBpZiAocmV0
dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgLy8gUmV0aHJvdyBleGNlcHRpb24uCisgICAgICAg
IGV4ZWMtPnZtKCkuc2V0RXhjZXB0aW9uKHJldHVybmVkRXhjZXB0aW9uKTsKKworICAgICAgICBy
ZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKKyAgICB9CiAKLSAgICBpZiAoIXZhbHVl
LmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgIHVpbnQxNl90IHJlc3Vs
dCA9IHRvVUludDE2KGV4ZWMsIHZhbHVlLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVK
RUNUOwogCi0gICAgUmVmUHRyPE5vZGVGaWx0ZXI+IHJlc3VsdCA9IE5vZGVGaWx0ZXI6OmNyZWF0
ZSgpOwotICAgIHJlc3VsdC0+c2V0Q29uZGl0aW9uKEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6Y3Jl
YXRlKHZtLCByZXN1bHQuZ2V0KCksIHZhbHVlKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNv
bmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNv
bmRpdGlvbi5oCmluZGV4IDNiZTE1NjMuLjZjMzc3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTQzLDcg
KzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24oZmlsdGVyKSk7CiAgICAgICAgIH0KIAotICAg
ICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29u
c3Q7CisgICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAKICAg
ICBwcml2YXRlOgogICAgICAgICBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbihpZCA8RE9NTm9kZUZp
bHRlcj4gZmlsdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9P
YmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
T2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0KaW5kZXggMjRiNTE5Mi4uOTg0YTFhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29u
ZGl0aW9uLm1tCkBAIC0zNyw3ICszNyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotc2hvcnQgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5v
ZGUoRXhlY1N0YXRlKiwgTm9kZSogbm9kZSkgY29uc3QKK3Nob3J0IE9iakNOb2RlRmlsdGVyQ29u
ZGl0aW9uOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFub2RlKQog
ICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggODg1YzBl
Yy4uNGY2ZWUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0NzUsNiArMzQ3NSw4IEBAIHN1YiBHZW5lcmF0ZUNhbGxi
YWNrSGVhZGVyCiAgICAgIyBEZXN0cnVjdG9yCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB2aXJ0dWFsIH4kY2xhc3NOYW1lKCk7XG4iKTsKIAorICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgSlNDYWxsYmFja0RhdGEqIGNhbGxiYWNrRGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfVxu
Iik7CisKICAgICAjIENvbnN0cnVjdG9yIG9iamVjdCBnZXR0ZXIuCiAgICAgaWYgKEB7JGludGVy
ZmFjZS0+Y29uc3RhbnRzfSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTtcbiIpOwpAQCAtMzUxNiw2ICszNTE4LDEwIEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNr
SGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBKU0NhbGxiYWNrRGF0YSogbV9k
YXRhO1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn07XG5cbiIpOwogCisgICAgIyB0
b0pTKCkuCisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW50ZXJmYWNlTmFtZSopO1xuIik7Cisg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgImlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgJGludGVyZmFj
ZU5hbWUmIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH1c
blxuIik7CisKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZVxuXG4iKTsKICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2Vu
ZXJhdGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNlKTsKICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25h
bFN0cmluZzsKQEAgLTM2ODksNiArMzY5NSwxNCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxl
bWVudGF0aW9uCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAjIHRvSlMoKSBpbXBsZW1lbnRhdGlv
bi4KKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VOYW1lKiBpbXBsKVxuIik7Cisg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoIWltcGwgfHwgIXN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSY+KCppbXBsKS5jYWxsYmFj
a0RhdGEoKSlcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNO
dWxsKCk7XG5cbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBzdGF0aWNf
Y2FzdDwke2NsYXNzTmFtZX0mPigqaW1wbCkuY2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7XG5c
biIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CisKICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIlxufVxuIik7CiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0
b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7CiAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJcbiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRp
dGlvbmFsU3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggYzViODc3OS4uNjM1ZDEzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBA
IC00MjAsNiArNDIwLDcgQEAgc3ViIEdldEltcGxDbGFzc05hbWUKIHsKICAgICBteSAkbmFtZSA9
IHNoaWZ0OwogCisgICAgcmV0dXJuICJOYXRpdmVOb2RlRmlsdGVyIiBpZiAkbmFtZSBlcSAiTm9k
ZUZpbHRlciI7CiAgICAgcmV0dXJuICJET01XaW5kb3ciIGlmICRuYW1lIGVxICJBYnN0cmFjdFZp
ZXciOwogICAgIHJldHVybiAkbmFtZTsKIH0KQEAgLTY5Myw3ICs2OTQsNyBAQCBzdWIgQWRkSW5j
bHVkZXNGb3JUeXBlCiAgICAgfQogCiAgICAgaWYgKCR0eXBlIGVxICJOb2RlRmlsdGVyIikgewot
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJOb2RlRmlsdGVyLmgifSA9IDE7CisgICAgICAgICRpbXBs
SW5jbHVkZXN7Ik5hdGl2ZU5vZGVGaWx0ZXIuaCJ9ID0gMTsKICAgICAgICAgJGltcGxJbmNsdWRl
c3siT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaCJ9ID0gMTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE1NTcsNyArMTU1OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRuZWVkc0N1c3RvbXsiTm9kZUZpbHRlciJ9Owog
ICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBSZWZQdHI8V2ViQ29y
ZTo6Tm9kZUZpbHRlcj4gbmF0aXZlTm9kZUZpbHRlcjtcbiIpOwogICAgICAgICAgICAgICAgIHB1
c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBpZiAoJHBhcmFtTmFtZSlcbiIpOwotICAgICAgICAg
ICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAgbmF0aXZlTm9kZUZpbHRlciA9
IFdlYkNvcmU6Ok5vZGVGaWx0ZXI6OmNyZWF0ZShXZWJDb3JlOjpPYmpDTm9kZUZpbHRlckNvbmRp
dGlvbjo6Y3JlYXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1
bmN0aW9uQ29udGVudCwgIiAgICAgICAgbmF0aXZlTm9kZUZpbHRlciA9IFdlYkNvcmU6Ok5hdGl2
ZU5vZGVGaWx0ZXI6OmNyZWF0ZShXZWJDb3JlOjpPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6Y3Jl
YXRlKCRwYXJhbU5hbWUpKTtcbiIpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwdXNo
KEBwYXJhbWV0ZXJOYW1lcywgImVjIikgaWYgJHJhaXNlc0V4Y2VwdGlvbnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxi
YWNrLmNwcAppbmRleCA0YmQ1OTdkLi4wZDg4ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKQEAg
LTIzOCw2ICsyMzgsMTUgQEAgYm9vbCBKU1Rlc3RDYWxsYmFjazo6Y2FsbGJhY2tSZXF1aXJlc1Ro
aXNUb1Bhc3MoaW50IGxvbmdQYXJhbSwgVGVzdE5vZGUqIHRlc3ROb2QKICAgICByZXR1cm4gIXJl
dHVybmVkRXhjZXB0aW9uOwogfQogCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdENhbGxiYWNrKiBpbXBsKQoreworICAgIGlmICghaW1w
bCB8fCAhc3RhdGljX2Nhc3Q8SlNUZXN0Q2FsbGJhY2smPigqaW1wbCkuY2FsbGJhY2tEYXRhKCkp
CisgICAgICAgIHJldHVybiBqc051bGwoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU1Rl
c3RDYWxsYmFjayY+KCppbXBsKS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKKworfQorCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgKaW5k
ZXggYTIyYjcwYi4uY2RkNzM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgKQEAgLTQwLDYgKzQwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIHZpcnR1YWwgfkpTVGVzdENhbGxiYWNr
KCk7CisgICAgSlNDYWxsYmFja0RhdGEqIGNhbGxiYWNrRGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsg
fQogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKIAogICAgIC8vIEZ1bmN0aW9ucwpAQCAtNTgsNiArNTksOSBAQCBw
cml2YXRlOgogICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7CiB9OwogCitKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdENhbGxiYWNrKik7
CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDYWxsYmFjayYgaW1wbCkgeyByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxs
YmFja0Z1bmN0aW9uLmNwcAppbmRleCAwYzQ1YzNmLi44OTdjN2JkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrRnVuY3Rpb24uY3BwCkBAIC0xODksNiArMTg5LDE1IEBAIGJvb2wgSlNUZXN0Q2Fs
bGJhY2tGdW5jdGlvbjo6Y2FsbGJhY2tSZXF1aXJlc1RoaXNUb1Bhc3MoaW50IGxvbmdQYXJhbSwg
VGVzdE5vZGUqCiAgICAgcmV0dXJuICFyZXR1cm5lZEV4Y2VwdGlvbjsKIH0KIAorSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDYWxsYmFj
a0Z1bmN0aW9uKiBpbXBsKQoreworICAgIGlmICghaW1wbCB8fCAhc3RhdGljX2Nhc3Q8SlNUZXN0
Q2FsbGJhY2tGdW5jdGlvbiY+KCppbXBsKS5jYWxsYmFja0RhdGEoKSkKKyAgICAgICAgcmV0dXJu
IGpzTnVsbCgpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTVGVzdENhbGxiYWNrRnVuY3Rp
b24mPigqaW1wbCkuY2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7CisKK30KKwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rp
b24uaAppbmRleCAzZmUzZjIwLi40MTJlMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0
aW9uLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAg
IHZpcnR1YWwgfkpTVGVzdENhbGxiYWNrRnVuY3Rpb24oKTsKKyAgICBKU0NhbGxiYWNrRGF0YSog
Y2FsbGJhY2tEYXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9CiAKICAgICAvLyBGdW5jdGlvbnMKICAg
ICB2aXJ0dWFsIGJvb2wgY2FsbGJhY2tXaXRoTm9QYXJhbSgpOwpAQCAtNTcsNiArNTgsOSBAQCBw
cml2YXRlOgogICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7CiB9OwogCitKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdENhbGxiYWNrRnVu
Y3Rpb24qKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdENhbGxiYWNrRnVuY3Rpb24mIGlt
cGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH0KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCA2NzQyZmI4Li41NTY4NDcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTEwOCw3ICsxMDgsNiBAQAogI2luY2x1ZGUgIk5h
bWVkRmxvd0NvbGxlY3Rpb24uY3BwIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5jcHAiCiAjaW5j
bHVkZSAiTm9kZS5jcHAiCi0jaW5jbHVkZSAiTm9kZUZpbHRlci5jcHAiCiAjaW5jbHVkZSAiTm9k
ZUZpbHRlckNvbmRpdGlvbi5jcHAiCiAjaW5jbHVkZSAiTm9kZUl0ZXJhdG9yLmNwcCIKICNpbmNs
dWRlICJOb2RlT3JTdHJpbmcuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05h
dGl2ZU5vZGVGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0ZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwYTM0YzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5jcHAKQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJO
YXRpdmVOb2RlRmlsdGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmF0aXZlTm9kZUZp
bHRlcjo6TmF0aXZlTm9kZUZpbHRlcihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4mJiBjb25k
aXRpb24pCisgICAgOiBtX2NvbmRpdGlvbihjb25kaXRpb24pCit7IH0KKwordWludDE2X3QgTmF0
aXZlTm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKQoreworICAgIC8vIGNhc3QgdG8g
c2hvcnQgc2lsZW5jZXMgImVudW1lcmFsIGFuZCBub24tZW51bWVyYWwgdHlwZXMgaW4gcmV0dXJu
IiB3YXJuaW5nCisgICAgcmV0dXJuIG1fY29uZGl0aW9uID8gbV9jb25kaXRpb24tPmFjY2VwdE5v
ZGUobm9kZSkgOiBzdGF0aWNfY2FzdDx1aW50MTZfdD4oRklMVEVSX0FDQ0VQVCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRp
dmVOb2RlRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMDc4ZWEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5hdGl2ZU5vZGVGaWx0ZXJfaAorI2RlZmluZSBOYXRp
dmVOb2RlRmlsdGVyX2gKKworI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKKyNpbmNsdWRlICJOb2Rl
RmlsdGVyQ29uZGl0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTmF0aXZl
Tm9kZUZpbHRlciBmaW5hbCA6IHB1YmxpYyBOb2RlRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPE5hdGl2ZU5vZGVGaWx0ZXI+IGNyZWF0ZShSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlv
bj4mJiBjb25kaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXRp
dmVOb2RlRmlsdGVyKFdURjo6bW92ZShjb25kaXRpb24pKSk7CisgICAgfQorCisgICAgc3RhdGlj
IFJlZjxOYXRpdmVOb2RlRmlsdGVyPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTmF0aXZlTm9kZUZpbHRlcigpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHVp
bnQxNl90IGFjY2VwdE5vZGUoTm9kZSopIG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRDb25kaXRp
b24oUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+JiYgY29uZGl0aW9uKSB7IEFTU0VSVCghbV9j
b25kaXRpb24pOyBtX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsgfQorCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IE5hdGl2ZU5vZGVGaWx0ZXIoUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+JiYpOwor
CisgICAgTmF0aXZlTm9kZUZpbHRlcigpIHsgfQorCisgICAgUmVmUHRyPE5vZGVGaWx0ZXJDb25k
aXRpb24+IG1fY29uZGl0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gTmF0aXZlTm9kZUZpbHRlcl9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRhYmM1NC4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUZpbHRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDAgRnJlZGVyaWsgSG9sbGplbiAoZnJlZGVyaWsuaG9sbGplbkBo
aWcubm8pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkK
LSAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIChzYW0ud2VpbmlnQGdtYWlsLmNv
bSkKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTm9kZUZpbHRlci5oIgot
Ci0jaW5jbHVkZSAiTm9kZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXNob3J0IE5vZGVG
aWx0ZXI6OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKSBjb25z
dAotewotICAgIC8vIGNhc3QgdG8gc2hvcnQgc2lsZW5jZXMgImVudW1lcmFsIGFuZCBub24tZW51
bWVyYWwgdHlwZXMgaW4gcmV0dXJuIiB3YXJuaW5nCi0gICAgcmV0dXJuIG1fY29uZGl0aW9uID8g
bV9jb25kaXRpb24tPmFjY2VwdE5vZGUoc3RhdGUsIG5vZGUpIDogc3RhdGljX2Nhc3Q8c2hvcnQ+
KEZJTFRFUl9BQ0NFUFQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVGaWx0ZXIuaAppbmRleCA5NjE5N2Q5Li4yNmY3NjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVy
LmgKQEAgLTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgRnJlZGVyaWsgSG9sbGpl
biAoZnJlZGVyaWsuaG9sbGplbkBoaWcubm8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIg
S2VsbHkgKHBta0Bwb3N0LmNvbSkKICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2Vpbmln
IChzYW0ud2VpbmlnQGdtYWlsLmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwOCwgMjAw
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDgsIDIwMDksIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yNSw3MCArMjUsNTAgQEAKICNpZm5kZWYgTm9kZUZpbHRlcl9oCiAj
ZGVmaW5lIE5vZGVGaWx0ZXJfaAogCi0jaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCi0jaW5j
bHVkZSAiTm9kZUZpbHRlckNvbmRpdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBj
bGFzcyBOb2RlRmlsdGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm9kZUZpbHRlcj4gewotICAgIHB1
YmxpYzoKLSAgICAgICAgLyoqCi0gICAgICAgICAqIFRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIGFy
ZSByZXR1cm5lZCBieSB0aGUgYWNjZXB0Tm9kZSgpCi0gICAgICAgICAqIG1ldGhvZDoKLSAgICAg
ICAgICovCi0gICAgICAgIGVudW0gewotICAgICAgICAgICAgRklMVEVSX0FDQ0VQVCA9IDEsCi0g
ICAgICAgICAgICBGSUxURVJfUkVKRUNUID0gMiwKLSAgICAgICAgICAgIEZJTFRFUl9TS0lQICAg
PSAzCi0gICAgICAgIH07CitjbGFzcyBOb2RlOwogCi0gICAgICAgIC8qKgotICAgICAgICAgKiBU
aGVzZSBhcmUgdGhlIGF2YWlsYWJsZSB2YWx1ZXMgZm9yIHRoZSB3aGF0VG9TaG93IHBhcmFtZXRl
ci4KLSAgICAgICAgICogVGhleSBhcmUgdGhlIHNhbWUgYXMgdGhlIHNldCBvZiBwb3NzaWJsZSB0
eXBlcyBmb3IgTm9kZSwgYW5kCi0gICAgICAgICAqIHRoZWlyIHZhbHVlcyBhcmUgZGVyaXZlZCBi
eSB1c2luZyBhIGJpdCBwb3NpdGlvbiBjb3JyZXNwb25kaW5nCi0gICAgICAgICAqIHRvIHRoZSB2
YWx1ZSBvZiBOb2RlVHlwZSBmb3IgdGhlIGVxdWl2YWxlbnQgbm9kZSB0eXBlLgotICAgICAgICAg
Ki8KLSAgICAgICAgZW51bSB7Ci0gICAgICAgICAgICBTSE9XX0FMTCAgICAgICAgICAgICAgICAg
ICAgICAgPSAweEZGRkZGRkZGLAotICAgICAgICAgICAgU0hPV19FTEVNRU5UICAgICAgICAgICAg
ICAgICAgID0gMHgwMDAwMDAwMSwKLSAgICAgICAgICAgIFNIT1dfQVRUUklCVVRFICAgICAgICAg
ICAgICAgICA9IDB4MDAwMDAwMDIsCi0gICAgICAgICAgICBTSE9XX1RFWFQgICAgICAgICAgICAg
ICAgICAgICAgPSAweDAwMDAwMDA0LAotICAgICAgICAgICAgU0hPV19DREFUQV9TRUNUSU9OICAg
ICAgICAgICAgID0gMHgwMDAwMDAwOCwKLSAgICAgICAgICAgIFNIT1dfRU5USVRZX1JFRkVSRU5D
RSAgICAgICAgICA9IDB4MDAwMDAwMTAsCi0gICAgICAgICAgICBTSE9XX0VOVElUWSAgICAgICAg
ICAgICAgICAgICAgPSAweDAwMDAwMDIwLAotICAgICAgICAgICAgU0hPV19QUk9DRVNTSU5HX0lO
U1RSVUNUSU9OICAgID0gMHgwMDAwMDA0MCwKLSAgICAgICAgICAgIFNIT1dfQ09NTUVOVCAgICAg
ICAgICAgICAgICAgICA9IDB4MDAwMDAwODAsCi0gICAgICAgICAgICBTSE9XX0RPQ1VNRU5UICAg
ICAgICAgICAgICAgICAgPSAweDAwMDAwMTAwLAotICAgICAgICAgICAgU0hPV19ET0NVTUVOVF9U
WVBFICAgICAgICAgICAgID0gMHgwMDAwMDIwMCwKLSAgICAgICAgICAgIFNIT1dfRE9DVU1FTlRf
RlJBR01FTlQgICAgICAgICA9IDB4MDAwMDA0MDAsCi0gICAgICAgICAgICBTSE9XX05PVEFUSU9O
ICAgICAgICAgICAgICAgICAgPSAweDAwMDAwODAwCi0gICAgICAgIH07CitjbGFzcyBOb2RlRmls
dGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm9kZUZpbHRlcj4geworcHVibGljOgorICAgIHZpcnR1
YWwgfk5vZGVGaWx0ZXIoKSB7IH0KKyAgICB2aXJ0dWFsIHVpbnQxNl90IGFjY2VwdE5vZGUoTm9k
ZSopID0gMDsKIAotICAgICAgICBzdGF0aWMgUmVmPE5vZGVGaWx0ZXI+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+IGNvbmRpdGlvbikKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUZpbHRlcihjb25kaXRpb24pKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUZpbHRlcj4gY3JlYXRlKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUZpbHRlcigpKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29u
c3Q7Ci0KLSAgICAgICAgLy8gRG8gbm90IGNhbGwgdGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBq
dXN0IHNjYWZmb2xkaW5nIHRvIHN1cHBvcnQgdGhlIE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAg
ICAgICAvLyBUaGV5IG9wZXJhdGUgaW4gdGhlIG1haW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5k
IHRoZXkgc3dhbGxvdyBKUyBleGNlcHRpb25zLgotICAgICAgICBzaG9ydCBhY2NlcHROb2RlKE5v
ZGUqIG5vZGUpIGNvbnN0IHsgcmV0dXJuIGFjY2VwdE5vZGUoZXhlY1N0YXRlRnJvbU5vZGUobWFp
blRocmVhZE5vcm1hbFdvcmxkKCksIG5vZGUpLCBub2RlKTsgfQotICAgICAgICAKLSAgICAgICAg
dm9pZCBzZXRDb25kaXRpb24oUGFzc1JlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBjb25kaXRp
b24pIHsgQVNTRVJUKCFtX2NvbmRpdGlvbik7IG1fY29uZGl0aW9uID0gY29uZGl0aW9uOyB9Ci0K
LSAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBOb2RlRmlsdGVyKFBhc3NSZWZQdHI8Tm9k
ZUZpbHRlckNvbmRpdGlvbj4gY29uZGl0aW9uKSA6IG1fY29uZGl0aW9uKGNvbmRpdGlvbikgeyB9
Ci0gICAgICAgIE5vZGVGaWx0ZXIoKSB7fQorICAgIC8qCisgICAgICogVGhlIGZvbGxvd2luZyBj
b25zdGFudHMgYXJlIHJldHVybmVkIGJ5IHRoZSBhY2NlcHROb2RlKCkKKyAgICAgKiBtZXRob2Q6
CisgICAgICovCisgICAgZW51bSB7CisgICAgICAgIEZJTFRFUl9BQ0NFUFQgPSAxLAorICAgICAg
ICBGSUxURVJfUkVKRUNUID0gMiwKKyAgICAgICAgRklMVEVSX1NLSVAgICA9IDMKKyAgICB9Owog
Ci0gICAgICAgIFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKKyAgICAv
KgorICAgICAqIFRoZXNlIGFyZSB0aGUgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIHdoYXRUb1No
b3cgcGFyYW1ldGVyLgorICAgICAqIFRoZXkgYXJlIHRoZSBzYW1lIGFzIHRoZSBzZXQgb2YgcG9z
c2libGUgdHlwZXMgZm9yIE5vZGUsIGFuZAorICAgICAqIHRoZWlyIHZhbHVlcyBhcmUgZGVyaXZl
ZCBieSB1c2luZyBhIGJpdCBwb3NpdGlvbiBjb3JyZXNwb25kaW5nCisgICAgICogdG8gdGhlIHZh
bHVlIG9mIE5vZGVUeXBlIGZvciB0aGUgZXF1aXZhbGVudCBub2RlIHR5cGUuCisgICAgICovCisg
ICAgZW51bSB7CisgICAgICAgIFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9IDB4RkZG
RkZGRkYsCisgICAgICAgIFNIT1dfRUxFTUVOVCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAw
MDEsCisgICAgICAgIFNIT1dfQVRUUklCVVRFICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDIs
CisgICAgICAgIFNIT1dfVEVYVCAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCisg
ICAgICAgIFNIT1dfQ0RBVEFfU0VDVElPTiAgICAgICAgICAgICA9IDB4MDAwMDAwMDgsCisgICAg
ICAgIFNIT1dfRU5USVRZX1JFRkVSRU5DRSAgICAgICAgICA9IDB4MDAwMDAwMTAsCisgICAgICAg
IFNIT1dfRU5USVRZICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMjAsCisgICAgICAgIFNI
T1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiAgICA9IDB4MDAwMDAwNDAsCisgICAgICAgIFNIT1df
Q09NTUVOVCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwODAsCisgICAgICAgIFNIT1dfRE9D
VU1FTlQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAxMDAsCisgICAgICAgIFNIT1dfRE9DVU1F
TlRfVFlQRSAgICAgICAgICAgICA9IDB4MDAwMDAyMDAsCisgICAgICAgIFNIT1dfRE9DVU1FTlRf
RlJBR01FTlQgICAgICAgICA9IDB4MDAwMDA0MDAsCisgICAgICAgIFNIT1dfTk9UQVRJT04gICAg
ICAgICAgICAgICAgICA9IDB4MDAwMDA4MDAKICAgICB9OworfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKaW5kZXggZGVlZTBhYi4uZmI3MzY0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbApAQCAtMjAsMTYgKzIwLDEyIEBACiAKIC8v
IEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiBbCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rpb24s
Ci0gICAgSlNDdXN0b21Ub05hdGl2ZU9iamVjdCwKICAgICBPYmpDUHJvdG9jb2wsCi0gICAgQ1BQ
UHVyZUludGVyZmFjZSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZh
Y2UgTm9kZUZpbHRlciB7CitdIGNhbGxiYWNrIGludGVyZmFjZSBOb2RlRmlsdGVyIHsKICAgICAv
LyBDb25zdGFudHMgcmV0dXJuZWQgYnkgYWNjZXB0Tm9kZQotICAgIGNvbnN0IHNob3J0ICAgICAg
ICAgICAgICAgRklMVEVSX0FDQ0VQVCAgICAgICAgICAgICAgICAgID0gMTsKLSAgICBjb25zdCBz
aG9ydCAgICAgICAgICAgICAgIEZJTFRFUl9SRUpFQ1QgICAgICAgICAgICAgICAgICA9IDI7Ci0g
ICAgY29uc3Qgc2hvcnQgICAgICAgICAgICAgICBGSUxURVJfU0tJUCAgICAgICAgICAgICAgICAg
ICAgPSAzOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTFRFUl9BQ0NFUFQgPSAxOworICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTFRFUl9SRUpFQ1QgPSAyOworICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IEZJTFRFUl9TS0lQID0gMzsKIAogICAgIC8vIENvbnN0YW50cyBmb3Igd2hhdFRv
U2hvdwogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgU0hPV19BTEwgICAgICAgICAgICAg
ICAgICAgICAgID0gMHhGRkZGRkZGRjsKQEAgLTQ2LDcgKzQyLDEwIEBACiAgICAgY29uc3QgdW5z
aWduZWQgbG9uZyAgICAgICBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAgPSAweDAwMDAw
NDAwOwogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgU0hPV19OT1RBVElPTiAgICAgICAg
ICAgICAgICAgID0gMHgwMDAwMDgwMDsKIAotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gc2hv
cnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIE5vZGUgbik7Ci0KKyNp
ZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwor
ICAgIHNob3J0IGFjY2VwdE5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBOb2RlIG4p
OworI2Vsc2UKKyAgICBbQ3VzdG9tXSB1bnNpZ25lZCBzaG9ydCBhY2NlcHROb2RlKFtEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsKKyNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmluZGV4IGU0NzhkOTQuLjcyYzllZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKQEAgLTI5LDcgKzI5
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zaG9ydCBOb2RlRmlsdGVyQ29uZGl0aW9u
OjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0CitzaG9ydCBOb2RlRmls
dGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKE5vZGUqKSBjb25zdAogewogICAgIHJldHVybiBOb2Rl
RmlsdGVyOjpGSUxURVJfQUNDRVBUOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29u
ZGl0aW9uLmgKaW5kZXggOGJhMzhmNi4uMmI5YWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUZpbHRlckNvbmRpdGlvbi5oCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBOb2RlRmlsdGVyQ29uZGl0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Tm9kZUZp
bHRlckNvbmRpdGlvbj4gewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+Tm9kZUZpbHRl
ckNvbmRpdGlvbigpIHsgfQotICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpF
eGVjU3RhdGUqLCBOb2RlKikgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2Vw
dE5vZGUoTm9kZSopIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0QWdncmVn
YXRlKEpTQzo6U2xvdFZpc2l0b3ImKSB7IH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRl
cmF0b3IuY3BwCmluZGV4IGU4NzAxZWUuLmI1OTk3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRl
cmF0b3IuY3BwCkBAIC04OSwxMSArODksMTEgQEAgTm9kZUl0ZXJhdG9yOjp+Tm9kZUl0ZXJhdG9y
KCkKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9kZUl0ZXJhdG9yKHRoaXMpOwogfQog
Ci1QYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUq
IHN0YXRlLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9y
OjpuZXh0Tm9kZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9kZXRhY2hlZCkgewog
ICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgUmVmUHRyPE5vZGU+IHJlc3VsdDsKQEAg
LTEwNCw5ICsxMDQsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBFeGNlcHRpb25Db2RlJiBlYwogICAgICAgICAvLyBJbiBv
dGhlciB3b3JkcywgRklMVEVSX1JFSkVDVCBkb2VzIG5vdCBwYXNzIG92ZXIgZGVzY2VuZGFudHMK
ICAgICAgICAgLy8gb2YgdGhlIHJlamVjdGVkIG5vZGUuIEhlbmNlLCBGSUxURVJfUkVKRUNUIGlz
IHRoZSBzYW1lIGFzIEZJTFRFUl9TS0lQLgogICAgICAgICBSZWZQdHI8Tm9kZT4gcHJvdmlzaW9u
YWxSZXN1bHQgPSBtX2NhbmRpZGF0ZU5vZGUubm9kZTsKLSAgICAgICAgYm9vbCBub2RlV2FzQWNj
ZXB0ZWQgPSBhY2NlcHROb2RlKHN0YXRlLCBwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9k
ZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRF
eGNlcHRpb24oKSkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBib29sIG5vZGVXYXNBY2Nl
cHRlZCA9IGFjY2VwdE5vZGUocHJvdmlzaW9uYWxSZXN1bHQuZ2V0KCkpID09IE5vZGVGaWx0ZXI6
OkZJTFRFUl9BQ0NFUFQ7CiAgICAgICAgIGlmIChub2RlV2FzQWNjZXB0ZWQpIHsKICAgICAgICAg
ICAgIG1fcmVmZXJlbmNlTm9kZSA9IG1fY2FuZGlkYXRlTm9kZTsKICAgICAgICAgICAgIHJlc3Vs
dCA9IHByb3Zpc2lvbmFsUmVzdWx0LnJlbGVhc2UoKTsKQEAgLTExOCwxMSArMTE2LDExIEBAIFBh
c3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpuZXh0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAK
LVBhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpwcmV2aW91c05vZGUoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJh
dG9yOjpwcmV2aW91c05vZGUoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fZGV0YWNo
ZWQpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIFJlZlB0cjxOb2RlPiByZXN1
bHQ7CkBAIC0xMzMsOSArMTMxLDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6OnBy
ZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEV4Y2VwdGlvbkNvZGUKICAgICAgICAg
Ly8gSW4gb3RoZXIgd29yZHMsIEZJTFRFUl9SRUpFQ1QgZG9lcyBub3QgcGFzcyBvdmVyIGRlc2Nl
bmRhbnRzCiAgICAgICAgIC8vIG9mIHRoZSByZWplY3RlZCBub2RlLiBIZW5jZSwgRklMVEVSX1JF
SkVDVCBpcyB0aGUgc2FtZSBhcyBGSUxURVJfU0tJUC4KICAgICAgICAgUmVmUHRyPE5vZGU+IHBy
b3Zpc2lvbmFsUmVzdWx0ID0gbV9jYW5kaWRhdGVOb2RlLm5vZGU7Ci0gICAgICAgIGJvb2wgbm9k
ZVdhc0FjY2VwdGVkID0gYWNjZXB0Tm9kZShzdGF0ZSwgcHJvdmlzaW9uYWxSZXN1bHQuZ2V0KCkp
ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0
ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgYm9vbCBub2Rl
V2FzQWNjZXB0ZWQgPSBhY2NlcHROb2RlKHByb3Zpc2lvbmFsUmVzdWx0LmdldCgpKSA9PSBOb2Rl
RmlsdGVyOjpGSUxURVJfQUNDRVBUOwogICAgICAgICBpZiAobm9kZVdhc0FjY2VwdGVkKSB7CiAg
ICAgICAgICAgICBtX3JlZmVyZW5jZU5vZGUgPSBtX2NhbmRpZGF0ZU5vZGU7CiAgICAgICAgICAg
ICByZXN1bHQgPSBwcm92aXNpb25hbFJlc3VsdC5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmgKaW5kZXggNWY4OWU2Mi4uNDcxMzliMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmgKQEAgLTQzLDggKzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAg
ICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIAotICAgICAgICBQYXNzUmVmUHRyPE5vZGU+IG5leHRO
b2RlKEpTQzo6RXhlY1N0YXRlKiwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICBQYXNzUmVmUHRy
PE5vZGU+IHByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICAgICAgUGFzc1JlZlB0cjxOb2RlPiBuZXh0Tm9kZShFeGNlcHRpb25Db2RlJik7CisgICAgICAg
IFBhc3NSZWZQdHI8Tm9kZT4gcHJldmlvdXNOb2RlKEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAg
dm9pZCBkZXRhY2goKTsKIAogICAgICAgICBOb2RlKiByZWZlcmVuY2VOb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWZlcmVuY2VOb2RlLm5vZGUuZ2V0KCk7IH0KQEAgLTUzLDExICs1Myw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVm
b3JlIGFueSBub2RlIGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQgdHJlZS4KICAgICAgICAg
dm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2RlJik7CiAKLSAgICAgICAgLy8gRG8gbm90IGNhbGwg
dGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNjYWZmb2xkaW5nIHRvIHN1cHBvcnQgdGhl
IE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAvLyBUaGV5IG9wZXJhdGUgaW4gdGhlIG1h
aW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkgc3dhbGxvdyBKUyBleGNlcHRpb25zLgot
ICAgICAgICBQYXNzUmVmUHRyPE5vZGU+IG5leHROb2RlKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJl
dHVybiBuZXh0Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwg
cmVmZXJlbmNlTm9kZSgpKSwgZWMpOyB9Ci0gICAgICAgIFBhc3NSZWZQdHI8Tm9kZT4gcHJldmlv
dXNOb2RlKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBwcmV2aW91c05vZGUoZXhlY1N0YXRl
RnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIHJlZmVyZW5jZU5vZGUoKSksIGVjKTsg
fQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4s
IHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVJdGVyYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbApp
bmRleCA1Y2Y3OGRmLi5hOTk1MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbApA
QCAtMzAsOCArMzAsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJlZmVyZW5jZU5v
ZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcG9pbnRlckJlZm9yZVJlZmVyZW5j
ZU5vZGU7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIFJhaXNlc0V4Y2VwdGlvbl0gTm9k
ZSBuZXh0Tm9kZSgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgUmFpc2VzRXhjZXB0aW9u
XSBOb2RlIHByZXZpb3VzTm9kZSgpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGUgbmV4dE5v
ZGUoKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBOb2RlIHByZXZpb3VzTm9kZSgpOwogICAgIHZv
aWQgZGV0YWNoKCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVy
c2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCmluZGV4IDFjMjI3MDUu
Ljc2M2YxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCkBAIC0zOCw3ICszOCw3IEBAIE5v
ZGVJdGVyYXRvckJhc2U6Ok5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9k
ZSwgdW5zaWduZWQgbG9uZyB3aGF0CiB7CiB9CiAKLXNob3J0IE5vZGVJdGVyYXRvckJhc2U6OmFj
Y2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQg
Tm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAogewogICAgIC8v
IEZJWE1FOiBUbyBoYW5kbGUgWE1MIHByb3Blcmx5IHdlIHdvdWxkIGhhdmUgdG8gY2hlY2sgbV9l
eHBhbmRFbnRpdHlSZWZlcmVuY2VzLgogCkBAIC00OCw3ICs0OCw3IEBAIHNob3J0IE5vZGVJdGVy
YXRvckJhc2U6OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKSBj
b25zdAogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1NLSVA7CiAgICAgaWYgKCFt
X2ZpbHRlcikKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0gICAg
cmV0dXJuIG1fZmlsdGVyLT5hY2NlcHROb2RlKHN0YXRlLCBub2RlKTsKKyAgICByZXR1cm4gbV9m
aWx0ZXItPmFjY2VwdE5vZGUobm9kZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmF2ZXJzYWwuaAppbmRleCAxNWYwOWUyLi42YWNmYmRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZl
cnNhbC5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByb3Rl
Y3RlZDoKICAgICAgICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25l
ZCBsb25nIHdoYXRUb1Nob3csIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50
aXR5UmVmZXJlbmNlcyk7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUq
LCBOb2RlKikgY29uc3Q7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0Owog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPE5vZGU+IG1fcm9vdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlV2Fsa2VyLmNwcAppbmRleCBkZjAzNGIxLi4wNTgzNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVX
YWxrZXIuY3BwCkBAIC01NCwyOCArNTQsMjQgQEAgaW5saW5lIE5vZGUqIFRyZWVXYWxrZXI6OnNl
dEN1cnJlbnQoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQogICAgIHJldHVybiBtX2N1cnJlbnQuZ2V0
KCk7CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6OnBhcmVudE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0
YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6cGFyZW50Tm9kZSgpCiB7CiAgICAgUmVmUHRyPE5vZGU+
IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgd2hpbGUgKG5vZGUgIT0gcm9vdCgpKSB7CiAgICAgICAg
IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSkKLSAgICAgICAg
ICAgIHJldHVybiAwOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9k
ZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdl
dCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVS
X0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsK
ICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRy
ZWVXYWxrZXI6OmZpcnN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdh
bGtlcjo6Zmlyc3RDaGlsZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3Vy
cmVudC0+Zmlyc3RDaGlsZCgpOyBub2RlOyApIHsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJl
c3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUg
JiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAg
ICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKICAgICAgICAgICAgIGNhc2UgTm9kZUZpbHRl
cjo6RklMVEVSX0FDQ0VQVDoKICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBub2RlLnJlbGVh
c2UoKTsKQEAgLTk2LDE5ICs5MiwxNyBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKEpT
Qzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIENvbnRhaW5l
ck5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgICAgIGlmICghcGFy
ZW50IHx8IHBhcmVudCA9PSByb290KCkgfHwgcGFyZW50ID09IG1fY3VycmVudCkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAg
ICAgICAgIG5vZGUgPSBwYXJlbnQ7CiAgICAgICAgIH0gd2hpbGUgKG5vZGUpOwogICAgIH0KLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6
bGFzdENoaWxkKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Omxhc3RD
aGlsZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudC0+bGFzdENo
aWxkKCk7IG5vZGU7ICkgewotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0
Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFk
RXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgc2hvcnQgYWNjZXB0
Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIHN3aXRjaCAoYWNj
ZXB0Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUND
RVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFzZSgpOwpAQCAtMTI5
LDIzICsxMjMsMjEgQEAgTm9kZSogVHJlZVdhbGtlcjo6bGFzdENoaWxkKEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVu
dCA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgICAgIGlmICghcGFyZW50IHx8IHBhcmVu
dCA9PSByb290KCkgfHwgcGFyZW50ID09IG1fY3VycmVudCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIG5vZGUg
PSBwYXJlbnQ7CiAgICAgICAgIH0gd2hpbGUgKG5vZGUpOwogICAgIH0KLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNTaWJs
aW5nKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzU2li
bGluZygpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgaWYgKG5v
ZGUgPT0gcm9vdCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gc2libGluZyA9IG5v
ZGUtPnByZXZpb3VzU2libGluZygpOyBzaWJsaW5nOyApIHsKLSAgICAgICAgICAgIHNob3J0IGFj
Y2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBzaWJsaW5nLmdldCgpKTsKLSAgICAg
ICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0
Tm9kZShzaWJsaW5nLmdldCgpKTsKICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3Vs
dCkgewogICAgICAgICAgICAgICAgIGNhc2UgTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDoKICAg
ICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gc2libGluZy5yZWxlYXNlKCk7CkBAIC0xNjQs
MjUgKzE1NiwyMSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxpbmcoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlKQogICAgICAgICB9CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2Rl
KCk7CiAgICAgICAgIGlmICghbm9kZSB8fCBub2RlID09IHJvb3QoKSkKLSAgICAgICAgICAgIHJl
dHVybiAwOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0
ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9u
KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsK
ICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQ
VCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpuZXh0U2libGluZyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpuZXh0U2libGluZygpCiB7CiAgICAgUmVmUHRyPE5v
ZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgaWYgKG5vZGUgPT0gcm9vdCgpKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgd2hpbGUgKDEpIHsKICAgICAg
ICAgZm9yIChSZWZQdHI8Tm9kZT4gc2libGluZyA9IG5vZGUtPm5leHRTaWJsaW5nKCk7IHNpYmxp
bmc7ICkgewotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUo
c3RhdGUsIHNpYmxpbmcuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHNo
b3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHNpYmxpbmcuZ2V0KCkpOwogICAgICAg
ICAgICAgc3dpdGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgY2FzZSBO
b2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQg
PSBzaWJsaW5nLnJlbGVhc2UoKTsKQEAgLTIwMSwzMSArMTg5LDI1IEBAIE5vZGUqIFRyZWVXYWxr
ZXI6Om5leHRTaWJsaW5nKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgfQogICAgICAg
ICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAoIW5vZGUgfHwgbm9kZSA9
PSByb290KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9k
ZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3Rh
dGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9
IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09
IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cHJl
dmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6OnByZXZp
b3VzTm9kZSgpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgd2hp
bGUgKG5vZGUgIT0gcm9vdCgpKSB7CiAgICAgICAgIHdoaWxlIChOb2RlKiBwcmV2aW91c1NpYmxp
bmcgPSBub2RlLT5wcmV2aW91c1NpYmxpbmcoKSkgewogICAgICAgICAgICAgbm9kZSA9IHByZXZp
b3VzU2libGluZzsKLSAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHRO
b2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+
aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBz
aG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAg
ICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB3aGlsZSAoTm9kZSogbGFzdENo
aWxkID0gbm9kZS0+bGFzdENoaWxkKCkpIHsKICAgICAgICAgICAgICAgICBub2RlID0gbGFzdENo
aWxkOwotICAgICAgICAgICAgICAgIGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRl
LCBub2RlLmdldCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAg
ICBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgICAg
ICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUKQog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTIzNSwyOSArMjE3
LDI1IEBAIE5vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUgPT0gcm9vdCgp
KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAg
ICBpZiAoIXBhcmVudCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIG5vZGUgPSBwYXJlbnQ7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5v
ZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0
YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAg
ICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkK
ICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAgICB9Ci0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6
Om5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Om5leHRO
b2RlKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKIENoaWxkcmVuOgog
ICAgIHdoaWxlIChOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpKSB7CiAgICAg
ICAgIG5vZGUgPSBmaXJzdENoaWxkOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0g
YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0
ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
c2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAg
IGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAgICAg
ICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAgICAgICAgIGlmIChh
Y2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCkBAIC0yNjUsOSAr
MjQzLDcgQEAgQ2hpbGRyZW46CiAgICAgfQogICAgIHdoaWxlIChOb2RlKiBuZXh0U2libGluZyA9
IE5vZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCByb290KCkpKSB7CiAg
ICAgICAgIG5vZGUgPSBuZXh0U2libGluZzsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3Vs
dCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYg
c3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAg
ICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQog
ICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAgICAgICBp
ZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5oCmluZGV4IGM0NDBjMjkuLjZhM2ZlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxr
ZXIuaApAQCAtNDUsMjMgKzQ1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9k
ZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQuZ2V0KCk7IH0KICAgICAg
ICAgdm9pZCBzZXRDdXJyZW50Tm9kZShQYXNzUmVmUHRyPE5vZGU+LCBFeGNlcHRpb25Db2RlJik7
CiAKLSAgICAgICAgTm9kZSogcGFyZW50Tm9kZShKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBO
b2RlKiBmaXJzdENoaWxkKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIGxhc3RDaGls
ZChKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoSlNDOjpF
eGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogbmV4dFNpYmxpbmcoSlNDOjpFeGVjU3RhdGUqKTsK
LSAgICAgICAgTm9kZSogcHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5v
ZGUqIG5leHROb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0KLSAgICAgICAgLy8gRG8gbm90IGNhbGwg
dGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNjYWZmb2xkaW5nIHRvIHN1cHBvcnQgdGhl
IE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAvLyBUaGV5IG9wZXJhdGUgaW4gdGhlIG1h
aW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkgc3dhbGxvdyBKUyBleGNlcHRpb25zLgot
ICAgICAgICBOb2RlKiBwYXJlbnROb2RlKCkgeyByZXR1cm4gcGFyZW50Tm9kZShleGVjU3RhdGVG
cm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAg
ICAgICAgTm9kZSogZmlyc3RDaGlsZCgpIHsgcmV0dXJuIGZpcnN0Q2hpbGQoZXhlY1N0YXRlRnJv
bU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAg
ICAgIE5vZGUqIGxhc3RDaGlsZCgpIHsgcmV0dXJuIGxhc3RDaGlsZChleGVjU3RhdGVGcm9tTm9k
ZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAgICAgICAg
Tm9kZSogcHJldmlvdXNTaWJsaW5nKCkgeyByZXR1cm4gcHJldmlvdXNTaWJsaW5nKGV4ZWNTdGF0
ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQot
ICAgICAgICBOb2RlKiBuZXh0U2libGluZygpIHsgcmV0dXJuIG5leHRTaWJsaW5nKGV4ZWNTdGF0
ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQot
ICAgICAgICBOb2RlKiBwcmV2aW91c05vZGUoKSB7IHJldHVybiBwcmV2aW91c05vZGUoZXhlY1N0
YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9
Ci0gICAgICAgIE5vZGUqIG5leHROb2RlKCkgeyByZXR1cm4gbmV4dE5vZGUoZXhlY1N0YXRlRnJv
bU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9CisgICAg
ICAgIE5vZGUqIHBhcmVudE5vZGUoKTsKKyAgICAgICAgTm9kZSogZmlyc3RDaGlsZCgpOworICAg
ICAgICBOb2RlKiBsYXN0Q2hpbGQoKTsKKyAgICAgICAgTm9kZSogcHJldmlvdXNTaWJsaW5nKCk7
CisgICAgICAgIE5vZGUqIG5leHRTaWJsaW5nKCk7CisgICAgICAgIE5vZGUqIHByZXZpb3VzTm9k
ZSgpOworICAgICAgICBOb2RlKiBuZXh0Tm9kZSgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
VHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFBh
c3NSZWZQdHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVdhbGtlci5pZGwKaW5kZXggMjYzYWVmYS4uNDgwOWVlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlV2Fsa2VyLmlkbApAQCAtMjksMTIgKzI5LDEyIEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAgIAogICAgIFtTZXR0ZXJS
YWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2RlOwogCi0gICAgW0NhbGxX
aXRoPVNjcmlwdFN0YXRlXSBOb2RlIHBhcmVudE5vZGUoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0
U3RhdGVdIE5vZGUgZmlyc3RDaGlsZCgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9k
ZSBsYXN0Q2hpbGQoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcHJldmlvdXNT
aWJsaW5nKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIG5leHRTaWJsaW5nKCk7
Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIHByZXZpb3VzTm9kZSgpOwotICAgIFtD
YWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBuZXh0Tm9kZSgpOworICAgIE5vZGUgcGFyZW50Tm9k
ZSgpOworICAgIE5vZGUgZmlyc3RDaGlsZCgpOworICAgIE5vZGUgbGFzdENoaWxkKCk7CisgICAg
Tm9kZSBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICBOb2RlIG5leHRTaWJsaW5nKCk7CisgICAgTm9k
ZSBwcmV2aW91c05vZGUoKTsKKyAgICBOb2RlIG5leHROb2RlKCk7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260264</attachid>
            <date>2015-08-30 19:07:37 -0700</date>
            <delta_ts>2015-08-30 19:43:11 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>NodeFilter_callback_interface_wip.patch</filename>
            <type>text/plain</type>
            <size>530991</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1m
aWx0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2Nl
cHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQKaW5kZXggY2E1ZGE4NDEuLmVlN2QyMWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0
Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAgUEFTUyB3YWxrZXIu
Zmlyc3RDaGlsZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwogUEFTUyB3YWxrZXIu
bmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAogVGVzdGluZyB3aXRo
IG9iamVjdCBsYWNraW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hp
bGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBu
b3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgp
OyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyB3YWxrZXIuY3Vy
cmVudE5vZGUuaWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2Nl
cHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAn
cm9vdCcKIAogVGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlvbiBhY2NlcHROb2Rl
IHByb3BlcnR5Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5j
dGlvbi4KK1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKLVBB
U1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0
ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fs
a2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQ
QVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rpbmcgd2l0aCBmdW5j
dGlvbiBoYXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nv
bnN0YW50cy1leHBlY3RlZC50eHQKaW5kZXggNDdmYzViMi4uYmZkNjU3MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC0yNCwyMiArMjQsNiBAQCBQ
QVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0lOSEVSSVQgc2hvdWxkIGJlIDAgYW5kIGlzLgogUEFT
Uzogd2luZG93LkNTU1ZhbHVlLkNTU19QUklNSVRJVkVfVkFMVUUgc2hvdWxkIGJlIDEgYW5kIGlz
LgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNUIHNob3VsZCBiZSAyIGFuZCBp
cy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIHNob3VsZCBiZSAzIGFuZCBpcy4K
LVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91bGQgYmUgMSBhbmQgaXMuCi1QQVNT
OiBub2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9k
ZUZpbHRlci5GSUxURVJfU0tJUCBzaG91bGQgYmUgMyBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVy
LlNIT1dfQUxMIHNob3VsZCBiZSA0Mjk0OTY3Mjk1IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX1RFWFQg
c2hvdWxkIGJlIDQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0NEQVRBX1NFQ1RJT04g
c2hvdWxkIGJlIDggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0VOVElUWV9SRUZFUkVO
Q0Ugc2hvdWxkIGJlIDE2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19FTlRJVFkgc2hv
dWxkIGJlIDMyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19QUk9DRVNTSU5HX0lOU1RS
VUNUSU9OIHNob3VsZCBiZSA2NCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQ09NTUVO
VCBzaG91bGQgYmUgMTI4IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCBz
aG91bGQgYmUgMjU2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBF
IHNob3VsZCBiZSA1MTIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UIHNob3VsZCBiZSAxMDI0IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19OT1RB
VElPTiBzaG91bGQgYmUgMjA0OCBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuTm9kZUZpbHRlci5GSUxU
RVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5Ob2RlRmlsdGVyLkZJ
TFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgogUEFTUzogd2luZG93Lk5vZGVGaWx0ZXIu
RklMVEVSX1NLSVAgc2hvdWxkIGJlIDMgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbAppbmRleCBkY2UyNTg4Li4xOTViYmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9jb25zdGFudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhLCBiKQogICAgIHByaW50
KG1lc3NhZ2UsIGNvbG9yKTsKIH0KIAotdmFyIGNzc1J1bGUsIGNzc1ZhbHVlLCBub2RlRmlsdGVy
LCBldmVudDsKK3ZhciBjc3NSdWxlLCBjc3NWYWx1ZSwgZXZlbnQ7CiAKIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpAQCAtNjYsMzQgKzY2LDYgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICBzaG91bGRCZSgid2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNU
IiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIiwgMyk7CiAK
LSAgICB2YXIgbm9kZUl0ZXJhdG9yOwotICAgIHRyeSB7Ci0gICAgICAgIG5vZGVJdGVyYXRvciA9
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7IHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7IH0sIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwotICAg
IH0gY2F0Y2goZSkgewotICAgICAgICBub2RlSXRlcmF0b3IgPSBuZXcgT2JqZWN0KCk7Ci0gICAg
fQotICAgIAotICAgIG5vZGVGaWx0ZXIgPSBub2RlSXRlcmF0b3IuZmlsdGVyOwotICAgIHNob3Vs
ZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQiLCAxKTsKLSAgICBzaG91bGRCZSgibm9kZUZp
bHRlci5GSUxURVJfUkVKRUNUIiwgMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuRklMVEVS
X1NLSVAiLCAzKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0FMTCIsIDB4RkZGRkZG
RkYpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRUxFTUVOVCIsIDB4MDAwMDAwMDEp
OwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFIiwgMHgwMDAwMDAwMik7
Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19URVhUIiwgMHgwMDAwMDAwNCk7Ci0gICAg
c2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OIiwgMHgwMDAwMDAwOCk7Ci0g
ICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFlfUkVGRVJFTkNFIiwgMHgwMDAwMDAx
MCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFkiLCAweDAwMDAwMDIwKTsK
LSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iLCAw
eDAwMDAwMDQwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0NPTU1FTlQiLCAweDAw
MDAwMDgwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UIiwgMHgwMDAw
MDEwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBFIiwgMHgw
MDAwMDIwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9GUkFHTUVO
VCIsIDB4MDAwMDA0MDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfTk9UQVRJT04i
LCAweDAwMDAwODAwKTsKLQogICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5GSUxURVJf
QUNDRVBUIiwgMSk7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5Ob2RlRmlsdGVyLkZJTFRFUl9SRUpF
Q1QiLCAyKTsKICAgICBzaG91bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIuRklMVEVSX1NLSVAiLCAz
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbAppbmRl
eCA5N2QyZmFkLi4wYjM5ZGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy5odG1sCkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRy
eSB7CiAgICAgICBub2RlRmlsdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgZnVuY3Rpb24gKCkge30sIGZhbHNlKS5maWx0
ZXI7CiAgICAgfSBjYXRjaChlKSB7fQotICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5w
cm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOworICAgIHNob3VsZEJl
KCJGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOwog
CiAgICAgb3JpZ2luYWxOb2RlUHJvdG90eXBlID0gd2luZG93Lk5vZGUucHJvdG90eXBlOwogICAg
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWdjLmh0bWwKaW5kZXggMDY0OWFkMi4u
YTIwNGM0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2Mu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sCkBAIC0z
LDggKzMsOCBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgIAotdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgMCwgZmFsc2UpOwotdmFyIHdhbGtl
ciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAwLCBmYWxzZSk7Cit2YXIgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsLCBmYWxzZSk7Cit2
YXIgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwsIGZhbHNlKTsKIAogLy8gY3JlYXRlIGxvdHMgb2Ygb2JqZWN0
cyB0byBmb3JjZSBhIGdhcmJhZ2UgY29sbGVjdGlvbgogIHZhciBpID0gMDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDVlNTQ2ODYuLmQ0YTk4YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMzksOCArMzksNiBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJs
ZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDBdCiAqIG5hbWUKIFtDb25maWd1cmFi
bGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiBOb2Rl
RmlsdGVyXQotKiBwcm90b3R5cGUKLVtDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBm
YWxzZSwgd3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogW29iamVjdCBOb2RlRmlsdGVyUHJvdG90eXBl
XV0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0CmluZGV4IGQyMTg2NDUuLmU3N2M0YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTE4OTAsNDEg
KzE4OTAsNDEgQEAgUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlMKIFBBU1MgVHJlZVdhbGtlciBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRl
ci5TSE9XX0FMTCwgbnVsbCwgZmFsc2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmlvdXNO
b2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoOSkgCiBQQVNTIFRyZWVXYWxrZXIgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVGaWx0ZXIuU0hP
V19BTEwsIG51bGwsIGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHROb2RlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoMTApIAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9mYWxzZTogTm9kZUZpbHRl
ciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6
IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJw
cm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1JF
SkVDVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29u
c3RhbnQgRklMVEVSX1JFSkVDVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRf
ZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IEZJTFRFUl9SRUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0FMTCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3Nl
cnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVy
dHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2Rl
RmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBvYmpl
Y3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVy
IGludGVyZmFjZTogY29uc3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBv
biBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19URVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9k
ZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBm
YWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19U
RVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1G
QUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04g
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIG9iamVjdCAKLUZB
SUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBv
biBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hv
dWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRy
dWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVS
RU5DRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEg
InByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19QUk9D
RVNTSU5HX0lOU1RSVUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3Qg
aGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJ
T04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEg
InByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9D
VU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfRE9DVU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0
X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5
IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0RPQ1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBO
b2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBFIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBO
b2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVk
IGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9X
X0RPQ1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UX0ZSQUdNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxz
ZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBl
Y3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19ET0NVTUVOVF9GUkFHTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJm
YWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9U
QVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9k
ZShOb2RlKSBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3Rv
dHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShO
b2RlKSAKIEZBSUwgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIERP
TVRva2VuTGlzdCBleHBlY3RlZCAiW29iamVjdCBGdW5jdGlvbl0iIGJ1dCBnb3QgIltvYmplY3Qg
RE9NVG9rZW5MaXN0Q29uc3RydWN0b3JdIgogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fs
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9E
b2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA3MmVhZDUzLi4zOGVm
MDA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vbm9kZXMvRG9j
dW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0ZWQu
dHh0CkBAIC0zLDUgKzMsNSBAQCBQQVNTIFJlcXVpcmVkIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVl
V2Fsa2VyIHNob3VsZCBiZSByZXF1aXJlZC4KIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRzIHRvIGNy
ZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgxIHBhc3NlZCkuIAogUEFTUyBPcHRp
b25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDIg
cGFzc2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNo
b3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIG51bGwpLiAKLUZBSUwgT3B0aW9uYWwgYXJndW1l
bnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgzIHBhc3NlZCwgZnVu
Y3Rpb24pLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSBv
cHRpb25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4
cGVjdGVkLnR4dAppbmRleCA0ZDU5ODZjNC4uOGE1NmQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLWV4cGVjdGVkLnR4dApAQCAtNSw3NDMgKzUsNzQzIEBAIFBBU1MgY3JlYXRlTm9kZUl0ZXJh
dG9yKCkgd2l0aCBudWxsIGFzIGFyZ3VtZW50cwogRkFJTCBjcmVhdGVOb2RlSXRlcmF0b3IoKSB3
aXRoIHVuZGVmaW5lZCBhcyBhcmd1bWVudHMgYXNzZXJ0X2VxdWFsczogd2hhdFRvU2hvdyBleHBl
Y3RlZCA0Mjk0OTY3Mjk1IGJ1dCBnb3QgMAogUEFTUyBQcm9wYWdhdGUgZXhjZXB0aW9uIGZyb20g
ZmlsdGVyIGZ1bmN0aW9uIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
YywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
YywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRD
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0
eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5
cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3RE
aXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0
ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25D
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENv
bW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Nm
cmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJz
YWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9k
b20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CmluZGV4IDlhYmVkMzAuLjY1NTc4
NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwv
VHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
ZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3NDIgKzEsNzQzIEBA
CiAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3Vt
ZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJUcmVlV2Fs
a2VyIHRlc3RzIiBidXQgZ290IG51bGwKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQg
VGV4dCBub2RlICJXeHl6YWJjZCIgYnV0IGdvdCBudWxsCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3Rl
ZCBUZXh0IG5vZGUgIkVmZ2hpamtsIiBidXQgZ290IENvbW1lbnQgbm9kZSA8IS0tIkNvbW1lbnRl
ciIgYW5kICJjb21tZW50YXRvciIgbWVhbiBkaWZmZXJlbnQgdGhpbmdzLiAgSSd2Li4uLS0+CiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJkbyByZSBt
aSBmYSBzbyBsYSB0aSIgYnV0IGdvdCBDb21tZW50IG5vZGUgPCEtLUkgbWFsaWNpb3VzbHkgY3Jl
YXRlZCBhIGNvbW1lbnQgdGhhdCB3aWxsIGJyZWFrIGluY2F1dGlvdS4uLi0tPgogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRU
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Y29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVz
dERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRT
aWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJJamtsbW5vcAorIiBidXQgZ290IENvbW1lbnQg
bm9kZSA8IS0tQWxwaGFiZXQgc291cD8tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVt
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50
LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYXZlcnNhbC9zaXpl
LXplcm8tcnVuLmh0bWwgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1s
CmluZGV4IGM2N2IyMmIuLjM1YjU0YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYXZlcnNh
bC9zaXplLXplcm8tcnVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3NpemUtemVy
by1ydW4uaHRtbApAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIHRleHRu
b2RlMi5ub2RlVmFsdWUgPSAiIjsKICAgICAKICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmJvZHk7
Ci0gICAgdmFyIGl0ID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQsIGZhbHNlKTsKKyAgICB2
YXIgaXQgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwsIGZhbHNlKTsKIAogICAgIHZhciBuID0gaXQubmV4dE5vZGUoKTsKICAg
ICB3aGlsZShuKSB7CkBAIC0yOCw0ICsyOCw0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiA8cD5BIGNy
YXNoIHdvdWxkIG9jY3VyIG9uIGl0ZXJhdGlvbiBvdmVyIGEgbm9kZSBjb250YWluaW5nIHN1Y2gg
YSBydW4uICBOb2RlSXRlcmF0b3JzLCB0aGUgaW5uZXJUZXh0IHByb3BlcnR5LCBhbmQgaG92ZXJp
bmcgb3ZlciBhIGxpbmsgYWxsIHVzZSBpdGVyYXRpb24uPC9wPgogPHA+VGhpcyB0ZXN0cyBpdGVy
YXRpb24gdXNpbmcgYm90aCB0aGUgaW5uZXJUZXh0IHByb3BlcnR5IGFuZCBOb2RlSXRlcmF0b3Jz
LiAgSXQgaXMgc3VjY2Vzc2Z1bCBpZiBpdCBkb2Vzbid0IGNyYXNoIFNhZmFyaS48L3A+CiA8aHI+
Ci08YSBocmVmPSIjIiBpZD0ibm9kZSI+aGVsbG88L2E+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8YSBocmVmPSIjIiBpZD0ibm9kZSI+aGVsbG88L2E+PC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDYwNzBlMC4uZTM0YzYyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTExNjEsNyArMTE2MSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU05hdmlnYXRvckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
Ci0gICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRv
ckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVPclN0cmluZy5jcHAKQEAgLTE0MzYs
OCArMTQzNSw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vTmFtZU5vZGVMaXN0LmNw
cAogICAgIGRvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcAogICAgIGRvbS9OYW1lZE5vZGVNYXAu
Y3BwCisgICAgZG9tL05hdGl2ZU5vZGVGaWx0ZXIuY3BwCiAgICAgZG9tL05vZGUuY3BwCi0gICAg
ZG9tL05vZGVGaWx0ZXIuY3BwCiAgICAgZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCiAgICAg
ZG9tL05vZGVJdGVyYXRvci5jcHAKICAgICBkb20vTm9kZU9yU3RyaW5nLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggMDUwOTY0Zi4u
Yjc2MmQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCkBAIC0xNDU1NywyMCArMTQ1NTcsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGRvbVxOb2RlRmlsdGVyLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTg0NzksMjAgKzE4
NDY1LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5jcHAiPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMjI0OTcsNyAr
MjI0NjksNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNNdXRh
dGlvbkNhbGxiYWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVDdXN0b20uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXEpTTm9kZU9yU3RyaW5nLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJHbG9iYWxTY29wZUJhc2Uu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFj
dGlvbi5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDhjNDgxNzMuLmUxZjllYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKQEAgLTQ0MDQsOSArNDQwNCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVDdXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRp
bmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiPgotICAgICAgPEZpbHRlcj5iaW5kaW5n
c1xqczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJp
bmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMTQ5OCw5ICsxMTQ5NSw2
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20u
aCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25k
aXRpb24uaCI+Ci0gICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Ci0gICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggM2JiNGU3My4uOGUyNDQwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY4NCw2ICsyNjg0
LDcgQEAKIAkJODMwMDMwRjUxQjdEMzNCNTAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29s
bGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzAwMzBGMzFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9u
LmNwcCAqLzsgfTsKIAkJODMwMDMwRjYxQjdEMzNCNTAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRI
VE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODMwMDMwRjQxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVj
dGlvbi5oICovOyB9OwogCQk4MzAwMzBGODFCN0QzQjc4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENv
bGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzMDAzMEY3MUI3RDM5ODgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovOyB9
OworCQk4MzA2RUZGMTFCOEJDRUE1MDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzA2RUZGMDFCOEJD
RTdDMDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgKi87IH07CiAJCTgzMkI4NDM0MTlE
OEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1NSAv
KiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCAqLzsgfTsKIAkJODMyQjg0MzYxOUQ4RTU3NDAwQjI2
MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlLmNwcCAqLzsgfTsKIAkJODM0OEJGQUIxQjg1NzI5ODAwOTEyRjM2IC8q
IENsYXNzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzQ4QkZBOTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKQEAgLTI2OTcsNiArMjY5OCw3IEBACiAJCTgzODZBOTcwMTlGNjFFNEYwMEUxRUM0
QSAvKiBTdHlsZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM4NkE5NkUxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5jcHAg
Ki87IH07CiAJCTgzOUFBRkVDMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQTFB
MEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwICovOyB9OwogCQk4MzlBQUZFRDFB
MEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1M
V0JSRWxlbWVudC5oICovOyB9OworCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyogTmF0aXZl
Tm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLzsgfTsK
IAkJODNCOTY4N0IxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCOTY4NzkxOUY4
QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oICovOyB9OwogCQk4M0MwNUE1
QTFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MwNUE1ODFB
Njg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAgKi87
IH07CiAJCTgzQzA1QTVCMUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5k
RnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0MwNUE1OTFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0
aW9ucy5oICovOyB9OwpAQCAtMjcxOCw2ICsyNzIwLDcgQEAKIAkJODNDMUQ0MzQxNzhENUFCNTAw
MTQxRTY4IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjIxNzhENUFCNDAwMTQxRTY4IC8q
IFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oICovOyB9OwogCQk4M0MxRDQzNTE3OEQ1QUI1
MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjMxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1Bh
dGhTZWdNb3ZldG9BYnMuaCAqLzsgfTsKIAkJODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNW
R1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzQzFENDI0MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVs
LmggKi87IH07CisJCTgzRjEyMDZCMUI4QzEwNDcwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNG
MTIwNkExQjhDMTAzNjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi87IH07CiAJ
CTg0MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAw
MTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IH07CiAJCTg0MTlEMkE4MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8q
IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHAgKi87IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBT
VkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTI5MDksNyArMjkxMiw2IEBACiAJ
CTg1NDJBNzk4MEFFNUM5NDMwMERGNThERiAvKiBKU1NWR051bWJlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGMzBBREU2MTIyMDA0Q0JB
MTEgLyogSlNTVkdOdW1iZXIuY3BwICovOyB9OwogCQk4NTQyQTc5OTBBRTVDOTQ0MDBERjU4REYg
LyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0Vs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5oICovOyB9OwogCQk4NTQyQTc5QTBBRTVDOTQ0MDBERjU4REYg
LyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3NEQxRjEwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZH
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLzsgfTsKLQkJODU0RkU3MzAwQTIyOTdCRTAwNThE
N0FEIC8qIE5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU0RkU3MjYwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwICov
OyB9OwogCQk4NTRGRTczMTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MjcwQTIyOTdCRTAw
NThEN0FEIC8qIE5vZGVGaWx0ZXIuaCAqLzsgfTsKIAkJODU0RkU3MzIwQTIyOTdCRTAwNThEN0FE
IC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJD
b25kaXRpb24uY3BwICovOyB9OwogCQk4NTRGRTczMzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZp
bHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU0RkU3MjkwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCAq
LzsgfTsKQEAgLTU0ODgsOSArNTQ5MCw2IEBACiAJCUJDQjE2QzI4MDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRYU0xTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVT
aGVldC5oICovOyB9OwogCQlCQ0IxNkMyOTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAq
LzsgfTsKIAkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkMx
MTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0I3NzM2MTBDMTc4NTNEMDAx
MzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwICovOyB9OwotCQlCQ0I3NzM2MjBDMTc4NTNEMDAxMzJCQTQg
LyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVy
Q29uZGl0aW9uLmggKi87IH07Ci0JCUJDQjc3MzYzMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVG
aWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNCNzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAg
Ki87IH07CiAJCUJDQjkyRDRGMTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjkyRDRFMTI5MzU1
MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0JCOEFCOTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50
ZXJ2YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QkI4QUI1MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQkI4QUJBMTNGMUFGQjAwMDczNERG
MCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAw
NTMsNiArMTAwNTIsNyBAQAogCQk4MzAwMzBGMzFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzMDAzMEY0MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENv
bGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJpY0NhY2hl
ZEhUTUxDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDAzMEY3
MUI3RDM5ODgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyogTmF0aXZlTm9kZUZp
bHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXRpdmVOb2Rl
RmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyQjg0MzMxOUQ4RTU1
MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlRWxlbWVudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODMyQjg0MzUxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRl
RWxlbWVudEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzQ4QkZBOTFC
ODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENsYXNzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMDA5MCw2ICsxMDA5MCw4IEBACiAJCTgzQzFENDI0MTc4RDVBQjQwMDE0
MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1BhdGhTZWdNb3ZldG9SZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODNEMjZEM0MxQUZEQ0M1MDAwMUIzODczIC8qIENoaWxkTm9kZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hpbGRO
b2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEMjZEM0QxQUZEQ0M1MDAw
MUIzODczIC8qIFBhcmVudE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4M0U5NTlFMTFCOEJDMjJCMDA0RDkzODUgLyogTmF0aXZlTm9k
ZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVOb2RlRmls
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRjEyMDZBMUI4QzEwMzYwMEQ3
NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4RiAvKiBT
VkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFt
QnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0
cmVhbUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjY1LDcgKzEw
MjY3LDYgQEAKIAkJODU0MDc1NjYwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MT3B0aW9uRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2NzBBRDZDQkY5MDA2
MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1NDA3NTY4MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9u
RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01I
VE1MT3B0aW9uRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlRmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODU0RkU3MjcwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVGaWx0ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0
ZXJDb25kaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTRG
RTcyOTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTMwOTUsOSArMTMwOTYsNiBAQAogCQlCQ0IxNkMwRjA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FjaGVkWFNMU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBh
dGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OwogCQlC
Q0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDQjc3MzVGMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQg
LyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU05vZGVGaWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0I5MkQ0RTEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRCYXNlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9ESW50ZXJ2YWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCQjhBQjYxM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVy
dmFsVHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQT0RJbnRlcnZhbFRy
ZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMzkxLDYgKzIxMzg5LDcgQEAK
IAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi8s
CiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuaCAqLywK
IAkJCQk2NUUwRTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFwcGVyLmggKi8sCisJCQkJ
ODNGMTIwNkExQjhDMTAzNjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8sCiAJ
CQkJN0M5MUEzOEQxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9kZU9yU3RyaW5nLmNwcCAqLywKIAkJ
CQk3QzkxQTM4RTFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcuaCAqLywKIAkJCQlG
M0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovLApAQCAtMjE1
NzQsNyArMjE1NzMsNiBAQAogCQkJCTA3Mzc5NEU3MTlFRTMzNUMwMEU1QTA0NSAvKiBKU05hdmln
YXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9k
ZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkM5NDM5QzIxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1
c3RvbS5oICovLAotCQkJCUJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJD
dXN0b20uY3BwICovLAogCQkJCTFBNzUwREQzMEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVy
YXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjEwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9k
ZUxpc3RDdXN0b20uY3BwICovLAogCQkJCUFEMjBCMThDMThFOUQyMTYwMDVBODA4MyAvKiBKU05v
ZGVMaXN0Q3VzdG9tLmggKi8sCkBAIC0yMTg5NSw4ICsyMTg5Myw2IEBACiAJCQkJOTNCNzBENEUw
OUVCMEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5oICovLAogCQkJCTkzNUY0NTQwMEY3
QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmNwcCAqLywKIAkJCQk5MzVGNDU0
MTBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5oICovLAotCQkJCUJDQjc3
MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovLAotCQkJ
CUJDQjc3MzVGMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLywK
IAkJCSk7CiAJCQluYW1lID0gIkNhbGxiYWNrIE9iamVjdHMiOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTIzNDA3LDEwICsyMzQwMywxMSBAQAogCQkJCTg1QUNBOUY5MEE5QjYzMTAw
MDY3MUU5MCAvKiBOYW1lZE5vZGVNYXAuaWRsICovLAogCQkJCUE4MTg3MjE5MDk3N0QzQzAwMDU4
MjZEOSAvKiBOYW1lTm9kZUxpc3QuY3BwICovLAogCQkJCUE4MTg3MjEzMDk3N0QzQzAwMDU4MjZE
OSAvKiBOYW1lTm9kZUxpc3QuaCAqLywKKwkJCQk4MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyog
TmF0aXZlTm9kZUZpbHRlci5jcHAgKi8sCisJCQkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8q
IE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLywKIAkJCQlBOEM0QTdFRTA5RDU2MzI3MDAwM0FDOEQgLyog
Tm9kZS5jcHAgKi8sCiAJCQkJMTQxMTVCNTEwOUY4NEI3MTAwQ0E0RkMxIC8qIE5vZGUuaCAqLywK
IAkJCQkxNERDMEQwQjA5RkVDRkE0MDA3QjAyMzUgLyogTm9kZS5pZGwgKi8sCi0JCQkJODU0RkU3
MjYwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwICovLAogCQkJCTg1NEZFNzI3MEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi8sCiAJCQkJMTQxMTVBRjkwOUY4NDdENjAw
Q0E0RkMxIC8qIE5vZGVGaWx0ZXIuaWRsICovLAogCQkJCTg1NEZFNzI4MEEyMjk3QkUwMDU4RDdB
RCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLywKQEAgLTI0NzcyLDYgKzI0NzY5LDcgQEAK
IAkJCQk4NTNCRjREQjBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODU0MDc1MjYwQUQ2QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1QjQ5OEZCMEFEQjM0MDIwMDkyNUNCQiAvKiBET01Ob2RlSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAorCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVO
b2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTUyNkMzNzBBQjBBMTdFMDAwMzAyRUEg
LyogRE9NTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTBCNDFDMjBBRDlFN0U3
MDBBNkVENEYgLyogRE9NTm9kZUl0ZXJhdG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1QUNBQThEMEE5Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTY1NCw3ICsyNTY1Miw2IEBACiAJCQkJMDczQkUzNEQxN0QxN0U3QTAwMkJENDMxIC8q
IEpTTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzk0MzlDMzExNkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNDExNUI3MzA5Rjg0Q0Q2MDBDQTRGQzEgLyogSlNOb2RlRmlsdGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQ0I3NzM2MjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc1MEQ4RTBBOTBFNTIxMDAwRkYyMTUgLyog
SlNOb2RlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDlDMkMzMEMxN0I2OUUwMDVD
OTBBMiAvKiBKU05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDIwQjE4RDE4RTlEMjM3
MDA1QTgwODMgLyogSlNOb2RlTGlzdEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODkwNSw2
ICsyODkwMiw3IEBACiAJCQkJQkMyRUQ2QkMwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUU5RDEyQjAzRUUxMDAzQTU4M0EgLyogSlNB
dWRpb0J1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREY3RTlDMzEzQUMyMURCMDBBNTFF
QUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzRjEy
MDZCMUI4QzEwNDcwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkRBMTVFOUYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUFBQUYzMTJCMDJFRTQwMERDRjMzQiAvKiBK
U0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREEx
NUVBNTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTE4Miw2ICsyOTE4MCw3IEBACiAJCQkJNTExRUYyRDExN0YwRkRGMTAwRTRGQTE2IC8q
IEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRUYyQzgx
N0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCT3BlbkRCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTFFRjJDOTE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJSZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTgzMDZFRkYxMUI4QkNFQTUwMDMxRDAzMiAvKiBOYXRpdmVOb2RlRmlsdGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkNBMTdGMEZEMzUwMEU0RkExNiAvKiBKU0lE
QlRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkNCMTdGMEZEMzUwMEU0
RkExNiAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzZDNDlGMzBEN0RCQTA1MDBGRkE1NTggLyogSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjkyNDcsOCArMjkyNDYsNiBAQAogCQkJCTE0REMwRDM3MDlGRUQwNzMwMDdC
MDIzNSAvKiBKU05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyNjQwQzE3QUE2NzAw
NUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDExNUI3MjA5
Rjg0Q0Q2MDBDQTRGQzEgLyogSlNOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJD
Qjc3MzYxMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQkNCNzczNjMwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc1MEQ4RDBBOTBFNTIxMDAwRkYyMTUgLyog
SlNOb2RlSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NTBERDQwQTkwRTcyOTAw
MEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RDlDMkMyMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjk3ODUsNyArMjk3ODIsNiBAQAogCQkJCTI2NzcyNjAwMUE1QjNBRDkwMDNDMjRERCAvKiBO
RkFUb0RGQS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGNDNFMDBFNjc0MTEwMDAxQzEyODcg
LyogTmluZVBpZWNlSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MDAwOUQ1NjMy
NzAwMDNBQzhEIC8qIE5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODU0RkU3MzAwQTIyOTdC
RTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzIw
QTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODU0RkU3MzQwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVJdGVyYXRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0RkZDMDIyQjE2NDNCNzEwMDA0RTE2MzggLyogTm9kZVJhcmVEYXRhLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAppbmRleCBhZGZkOGMx
Li5lMGFiYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dP
YmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAtMjksNyArMjksNyBA
QCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6fkdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
KCkKICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChtX2ZpbHRlci5nZXQoKSksICJ3ZWJr
aXQtY29yZS1ub2RlLWZpbHRlciIsIG51bGxwdHIpOwogfQogCi1zaG9ydCBHT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqIG5vZGUpIGNv
bnN0CitzaG9ydCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlKiBu
b2RlKSBjb25zdAogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6
OkZJTFRFUl9SRUpFQ1Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggNjEyODAyNS4uNTM2
NmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
KGZpbHRlcikpOwogICAgIH0KIAotICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4
ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoTm9k
ZSopIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEdPYmplY3ROb2RlRmlsdGVyQ29u
ZGl0aW9uKFdlYktpdERPTU5vZGVGaWx0ZXIqIGZpbHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwCmluZGV4IDI1
OGZjNGEuLmQ4MGZlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
Z29iamVjdC9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1
ZGUgIldlYktpdERPTU5vZGVGaWx0ZXIuaCIKIAogI2luY2x1ZGUgIkdPYmplY3ROb2RlRmlsdGVy
Q29uZGl0aW9uLmgiCi0jaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorI2luY2x1ZGUgIk5hdGl2ZU5v
ZGVGaWx0ZXIuaCIKICNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RE9NTm9kZUZpbHRlclByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNzIs
NyArNzIsNyBAQCBSZWZQdHI8V2ViQ29yZTo6Tm9kZUZpbHRlcj4gY29yZShXZWJLaXRET01Ob2Rl
RmlsdGVyKiBub2RlRmlsdGVyKQogCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNv
cmVOb2RlRmlsdGVyID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZUZpbHRlcio+KGdfb2JqZWN0
X2dldF9kYXRhKEdfT0JKRUNUKG5vZGVGaWx0ZXIpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0ZXIi
KSk7CiAgICAgaWYgKCFjb3JlTm9kZUZpbHRlcikgewotICAgICAgICBjb3JlTm9kZUZpbHRlciA9
IFdlYkNvcmU6Ok5vZGVGaWx0ZXI6OmNyZWF0ZShXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbjo6Y3JlYXRlKG5vZGVGaWx0ZXIpKTsKKyAgICAgICAgY29yZU5vZGVGaWx0ZXIgPSBX
ZWJDb3JlOjpOYXRpdmVOb2RlRmlsdGVyOjpjcmVhdGUoV2ViQ29yZTo6R09iamVjdE5vZGVGaWx0
ZXJDb25kaXRpb246OmNyZWF0ZShub2RlRmlsdGVyKSk7CiAgICAgICAgIG5vZGVGaWx0ZXJNYXAo
KS5hZGQoY29yZU5vZGVGaWx0ZXIuZ2V0KCksIG5vZGVGaWx0ZXIpOwogICAgICAgICBnX29iamVj
dF93ZWFrX3JlZihHX09CSkVDVChub2RlRmlsdGVyKSwgbm9kZUZpbHRlck9iamVjdERlc3Ryb3ll
ZENhbGxiYWNrLCBjb3JlTm9kZUZpbHRlci5nZXQoKSk7CiAgICAgICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKG5vZGVGaWx0ZXIpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0ZXIiLCBjb3Jl
Tm9kZUZpbHRlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
aW5kaW5nc0FsbEluT25lLmNwcAppbmRleCAxYjVlOTViLi5iNWM1ZmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTExNCw3
ICsxMTQsNiBAQAogI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5j
bHVkZSAiSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5j
cHAiCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKICNpbmNsdWRlICJKU05v
ZGVGaWx0ZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU05vZGVMaXN0Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAppbmRleCBkOThlNjMyLi5jNDdlZjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlSW5zdHJ1bWVudGF0
aW9uLmgiCisjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKICAgICAKQEAgLTY0LDE0ICs2NSwxOCBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjpp
bnZva2VDYWxsYmFjayhKU1ZhbHVlIHRoaXNWYWx1ZSwgTWFya2VkQXJndW1lbnRCdWZmZXImCiAg
ICAgICAgIGNhbGxUeXBlID0gY2FsbGJhY2soKS0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEo
Y2FsbGJhY2soKSwgY2FsbERhdGEpOwogICAgIH0KICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5
cGVOb25lKSB7Ci0gICAgICAgIGlmIChtZXRob2QgPT0gQ2FsbGJhY2tUeXBlOjpGdW5jdGlvbikK
KyAgICAgICAgaWYgKG1ldGhvZCA9PSBDYWxsYmFja1R5cGU6OkZ1bmN0aW9uKSB7CisgICAgICAg
ICAgICByZXR1cm5lZEV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGNy
ZWF0ZVR5cGVFcnJvcihleGVjKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAg
ICAgICB9CiAKICAgICAgICAgQVNTRVJUKCFmdW5jdGlvbk5hbWUuaXNOdWxsKCkpOwogICAgICAg
ICBmdW5jdGlvbiA9IGNhbGxiYWNrKCktPmdldChleGVjLCBmdW5jdGlvbk5hbWUpOwogICAgICAg
ICBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlm
IChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxs
VHlwZU5vbmUpIHsKKyAgICAgICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gRXhjZXB0aW9uOjpj
cmVhdGUoZXhlYy0+dm0oKSwgY3JlYXRlVHlwZUVycm9yKGV4ZWMpKTsKICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBBU1NFUlQoIWZ1bmN0aW9u
LmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I0MTE5
YS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJD
b25kaXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIgotCi0jaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmgiCi0jaW5jbHVkZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmgi
Ci0jaW5jbHVkZSAiTm9kZUZpbHRlci5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLSNp
bmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5n
IG5hbWVzcGFjZSBKU0M7Ci0KLUpTTm9kZUZpbHRlckNvbmRpdGlvbjo6SlNOb2RlRmlsdGVyQ29u
ZGl0aW9uKFZNJiwgTm9kZUZpbHRlciogb3duZXIsIEpTVmFsdWUgZmlsdGVyKQotICAgIDogbV9m
aWx0ZXIoZmlsdGVyLmlzT2JqZWN0KCkgPyBXZWFrPEpTT2JqZWN0Pihqc0Nhc3Q8SlNPYmplY3Qq
PihmaWx0ZXIpLCAmbV93ZWFrT3duZXIsIG93bmVyKSA6IG51bGxwdHIpCi17Ci19Ci0KLXNob3J0
IEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Tm9kZSogZmlsdGVyTm9kZSkgY29uc3QKLXsKLSAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsK
LQotICAgIGlmICghbV9maWx0ZXIpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUOwotCi0gICAgLy8gRXhlYyBpcyBudWxsIGlmIHdlJ3ZlIGJlZW4gY2FsbGVkIGZyb20g
YSBub24tSmF2YVNjcmlwdCBsYW5ndWFnZSBhbmQgdGhlIGRvY3VtZW50Ci0gICAgLy8gaXMgbm8g
bG9uZ2VyIGFibGUgdG8gcnVuIEphdmFTY3JpcHQgKGUuZy4sIGl0J3MgZGlzY29ubmVjdGVkIGZy
b20gaXRzIGZyYW1lKS4KLSAgICBpZiAoIWV4ZWMpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVy
OjpGSUxURVJfUkVKRUNUOwotCi0gICAgSlNWYWx1ZSBmaWx0ZXIgPSBtX2ZpbHRlci5nZXQoKTsK
LSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxE
YXRhKGZpbHRlciwgY2FsbERhdGEpOwotICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUp
IHsKLSAgICAgICAgZmlsdGVyID0gZmlsdGVyLmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGV4ZWMsICJhY2NlcHROb2RlIikpOwotICAgICAgICBjYWxsVHlwZSA9IGdldENhbGxEYXRh
KGZpbHRlciwgY2FsbERhdGEpOwotICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25l
KSB7Ci0gICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcihleGVjLCAiTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHRO
b2RlIGZ1bmN0aW9uIikpOwotICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9S
RUpFQ1Q7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdz
OwotICAgIC8vIEZJWE1FOiBUaGUgbm9kZSBzaG91bGQgaGF2ZSB0aGUgcHJvdG90eXBlIGNoYWlu
IHRoYXQgY2FtZSBmcm9tIGl0cyBkb2N1bWVudCwgbm90Ci0gICAgLy8gd2hhdGV2ZXIgcHJvdG90
eXBlIGNoYWluIG1pZ2h0IGJlIG9uIHRoZSB3aW5kb3cgdGhpcyBmaWx0ZXIgY2FtZSBmcm9tLiBC
dWcgMjc2NjIKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmpl
Y3RGb3JQcm90b3R5cGUoZXhlYyksIGZpbHRlck5vZGUpKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0g
ICAgSlNWYWx1ZSByZXN1bHQgPSBKU0M6OmNhbGwoZXhlYywgZmlsdGVyLCBjYWxsVHlwZSwgY2Fs
bERhdGEsIG1fZmlsdGVyLmdldCgpLCBhcmdzKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0gICAgaW50
IGludFJlc3VsdCA9IHJlc3VsdC50b0ludDMyKGV4ZWMpOwotICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0KLSAg
ICByZXR1cm4gaW50UmVzdWx0OwotfQotCi1ib29sIEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6V2Vh
a093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICByZXR1cm4g
dmlzaXRvci5jb250YWluc09wYXF1ZVJvb3QoY29udGV4dCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZp
bHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVy
Q29uZGl0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YTFiZTMuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykg
MjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCi0jZGVm
aW5lIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCi0KLSNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0
aW9uLmgiCi0jaW5jbHVkZSA8aGVhcC9XZWFrLmg+Ci0jaW5jbHVkZSA8aGVhcC9XZWFrSW5saW5l
cy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
SlNDSlNWYWx1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm9kZUZpbHRlcjsKLQotICAg
IGNsYXNzIEpTTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBOb2RlRmlsdGVyQ29uZGl0aW9u
IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8SlNOb2RlRmlsdGVyQ29uZGl0aW9u
PiBjcmVhdGUoSlNDOjpWTSYgdm0sIE5vZGVGaWx0ZXIqIG93bmVyLCBKU0M6OkpTVmFsdWUgZmls
dGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU05vZGVG
aWx0ZXJDb25kaXRpb24odm0sIG93bmVyLCBmaWx0ZXIpKTsKLSAgICAgICAgfQotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgSlNOb2RlRmlsdGVyQ29uZGl0aW9uKEpTQzo6Vk0mLCBOb2RlRmlsdGVy
KiBvd25lciwgSlNDOjpKU1ZhbHVlIGZpbHRlcik7Ci0KLSAgICAgICAgdmlydHVhbCBzaG9ydCBh
Y2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0OwotCi0gICAgICAgIGNsYXNz
IFdlYWtPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7Ci0gICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOwotICAgICAgICB9Owot
ICAgICAgICBXZWFrT3duZXIgbV93ZWFrT3duZXI7Ci0gICAgICAgIG11dGFibGUgSlNDOjpXZWFr
PEpTQzo6SlNPYmplY3Q+IG1fZmlsdGVyOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAppbmRleCA3MDUzM2RiLi45
ZjMwMGNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0
ZXJDdXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0xMCw0MSArMTAsNTggQEAKICAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmgiCiAKLSNpbmNsdWRlICJKU05vZGVGaWx0
ZXJDb25kaXRpb24uaCIKKyNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgorI2luY2x1ZGUgIkpT
Tm9kZS5oIgorI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci12b2lkIEpTTm9kZUZpbHRlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90Vmlz
aXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJmltcGwoKSk7Ci19
Cit1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1SZWZQdHI8Tm9kZUZpbHRlcj4gSlNOb2RlRmlsdGVy
Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKKy8vIEZJWE1FOiBU
aGUgYmluZGluZ3MgZ2VuZXJhdG9yIGlzIGN1cnJlbnRseSBub3QgYWJsZSB0byBnZW5lcmF0ZQor
Ly8gY2FsbGJhY2sgZnVuY3Rpb24gY2FsbHMgaWYgdGhleSByZXR1cm4gc29tZXRoaW5nIGVsc2Ug
dGhhbiBhCisvLyBib29sZWFuLgordWludDE2X3QgSlNOb2RlRmlsdGVyOjphY2NlcHROb2RlKE5v
ZGUqIG5vZGUpCiB7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTTm9kZUZpbHRlcjo6aW5mbygp
KSkKLSAgICAgICAgcmV0dXJuICZKU0M6OmpzQ2FzdDxKU05vZGVGaWx0ZXIqPihhc09iamVjdCh2
YWx1ZSkpLT5pbXBsKCk7CisgICAgUmVmPEpTTm9kZUZpbHRlcj4gcHJvdGVjdCgqdGhpcyk7CisK
KyAgICBKU0xvY2tIb2xkZXIgbG9jayhtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT52bSgpKTsKKwor
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMo
KTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKHRvSlMo
ZXhlYywgbV9kYXRhLT5nbG9iYWxPYmplY3QoKSwgbm9kZSkpOworICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CisK
KyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIEpTVmFsdWUg
dmFsdWUgPSBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxs
YmFja1R5cGU6OkZ1bmN0aW9uT3JPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywg
ImFjY2VwdE5vZGUiKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIGlmIChyZXR1cm5lZEV4Y2Vw
dGlvbikgeworICAgICAgICAvLyBSZXRocm93IGV4Y2VwdGlvbi4KKyAgICAgICAgZXhlYy0+dm0o
KS5zZXRFeGNlcHRpb24ocmV0dXJuZWRFeGNlcHRpb24pOworCisgICAgICAgIHJldHVybiBOb2Rl
RmlsdGVyOjpGSUxURVJfUkVKRUNUOworICAgIH0KIAotICAgIGlmICghdmFsdWUuaXNPYmplY3Qo
KSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgdWludDE2X3QgcmVzdWx0ID0gdG9VSW50
MTYoZXhlYywgdmFsdWUsIE5vcm1hbENvbnZlcnNpb24pOworICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CiAKLSAg
ICBSZWZQdHI8Tm9kZUZpbHRlcj4gcmVzdWx0ID0gTm9kZUZpbHRlcjo6Y3JlYXRlKCk7Ci0gICAg
cmVzdWx0LT5zZXRDb25kaXRpb24oSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUodm0sIHJl
c3VsdC5nZXQoKSwgdmFsdWUpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgK
aW5kZXggM2JlMTU2My4uNmMzNzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtNDMsNyArNDMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmpD
Tm9kZUZpbHRlckNvbmRpdGlvbihmaWx0ZXIpKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1
YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKE5vZGUqKSBjb25zdDsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGlkIDxET01Ob2RlRmlsdGVyPiBmaWx0
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmls
dGVyQ29uZGl0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZp
bHRlckNvbmRpdGlvbi5tbQppbmRleCAyNGI1MTkyLi45ODRhMWFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0K
QEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zaG9ydCBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShFeGVjU3Rh
dGUqLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmFj
Y2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJl
dHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4ODVjMGVjLi40ZjZlZTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtMzQ3NSw2ICszNDc1LDggQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIK
ICAgICAjIERlc3RydWN0b3IKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwg
fiRjbGFzc05hbWUoKTtcbiIpOwogCisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBKU0Nh
bGxiYWNrRGF0YSogY2FsbGJhY2tEYXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9XG4iKTsKKwogICAg
ICMgQ29uc3RydWN0b3Igb2JqZWN0IGdldHRlci4KICAgICBpZiAoQHskaW50ZXJmYWNlLT5jb25z
dGFudHN9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xu
Iik7CkBAIC0zNTE2LDYgKzM1MTgsMTAgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7XG4iKTsK
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtcblxuIik7CiAKKyAgICAjIHRvSlMoKS4KKyAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKKyAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCAkaW50ZXJmYWNlTmFtZSYgaW1w
bCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfVxuXG4iKTsKKwog
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSBXZWJDb3JlXG5cbiIpOwog
ICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRp
dGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5k
aWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwpA
QCAtMzY4OSw2ICszNjk1LDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24K
ICAgICAgICAgfQogICAgIH0KIAorICAgICMgdG9KUygpIGltcGxlbWVudGF0aW9uLgorICAgIHB1
c2goQGltcGxDb250ZW50LCAiXG5KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiwgJGludGVyZmFjZU5hbWUqIGltcGwpXG4iKTsKKyAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghaW1w
bCB8fCAhc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKVxu
Iik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBqc051bGwoKTtcblxu
Iik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHN0YXRpY19jYXN0PCR7Y2xh
c3NOYW1lfSY+KCppbXBsKS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTtcblxuIik7CisgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKKwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG59
XG4iKTsKICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJh
dGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNlKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJp
bmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JPYmpDLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yT2JqQy5wbQppbmRleCBjNWI4Nzc5Li42MzVkMTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTQyMCw2ICs0
MjAsNyBAQCBzdWIgR2V0SW1wbENsYXNzTmFtZQogewogICAgIG15ICRuYW1lID0gc2hpZnQ7CiAK
KyAgICByZXR1cm4gIk5hdGl2ZU5vZGVGaWx0ZXIiIGlmICRuYW1lIGVxICJOb2RlRmlsdGVyIjsK
ICAgICByZXR1cm4gIkRPTVdpbmRvdyIgaWYgJG5hbWUgZXEgIkFic3RyYWN0VmlldyI7CiAgICAg
cmV0dXJuICRuYW1lOwogfQpAQCAtNjkzLDcgKzY5NCw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5
cGUKICAgICB9CiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICRp
bXBsSW5jbHVkZXN7Ik5vZGVGaWx0ZXIuaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3si
TmF0aXZlTm9kZUZpbHRlci5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJPYmpDTm9k
ZUZpbHRlckNvbmRpdGlvbi5oIn0gPSAxOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTU1
Nyw3ICsxNTU4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1OYW1lID0gJG5lZWRzQ3VzdG9teyJOb2RlRmlsdGVyIn07CiAgICAgICAgICAg
ICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlRmls
dGVyPiBuYXRpdmVOb2RlRmlsdGVyO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rp
b25Db250ZW50LCAiICAgIGlmICgkcGFyYW1OYW1lKVxuIik7Ci0gICAgICAgICAgICAgICAgcHVz
aChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6
Tm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVh
dGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250
ZW50LCAiICAgICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6TmF0aXZlTm9kZUZpbHRl
cjo6Y3JlYXRlKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFt
TmFtZSkpO1xuIik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRl
ck5hbWVzLCAiZWMiKSBpZiAkcmFpc2VzRXhjZXB0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCmlu
ZGV4IDRiZDU5N2QuLjBkODhlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcApAQCAtMjM4LDYgKzIz
OCwxNSBAQCBib29sIEpTVGVzdENhbGxiYWNrOjpjYWxsYmFja1JlcXVpcmVzVGhpc1RvUGFzcyhp
bnQgbG9uZ1BhcmFtLCBUZXN0Tm9kZSogdGVzdE5vZAogICAgIHJldHVybiAhcmV0dXJuZWRFeGNl
cHRpb247CiB9CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqLCBUZXN0Q2FsbGJhY2sqIGltcGwpCit7CisgICAgaWYgKCFpbXBsIHx8ICFzdGF0
aWNfY2FzdDxKU1Rlc3RDYWxsYmFjayY+KCppbXBsKS5jYWxsYmFja0RhdGEoKSkKKyAgICAgICAg
cmV0dXJuIGpzTnVsbCgpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTVGVzdENhbGxiYWNr
Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpOworCit9CisKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suaAppbmRleCBhMjJiNzBi
Li5jZGQ3Mzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsgfQogCiAgICAgdmlydHVhbCB+SlNUZXN0Q2FsbGJhY2soKTsKKyAgICBK
U0NhbGxiYWNrRGF0YSogY2FsbGJhY2tEYXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9CiAgICAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogCiAgICAgLy8gRnVuY3Rpb25zCkBAIC01OCw2ICs1OSw5IEBAIHByaXZhdGU6CiAg
ICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKIH07CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q2FsbGJhY2sqKTsKK2lubGluZSBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGVzdENhbGxiYWNrJiBpbXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgJmltcGwpOyB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rp
b24uY3BwCmluZGV4IDBjNDVjM2YuLjg5N2M3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tG
dW5jdGlvbi5jcHAKQEAgLTE4OSw2ICsxODksMTUgQEAgYm9vbCBKU1Rlc3RDYWxsYmFja0Z1bmN0
aW9uOjpjYWxsYmFja1JlcXVpcmVzVGhpc1RvUGFzcyhpbnQgbG9uZ1BhcmFtLCBUZXN0Tm9kZSoK
ICAgICByZXR1cm4gIXJldHVybmVkRXhjZXB0aW9uOwogfQogCitKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdENhbGxiYWNrRnVuY3Rpb24q
IGltcGwpCit7CisgICAgaWYgKCFpbXBsIHx8ICFzdGF0aWNfY2FzdDxKU1Rlc3RDYWxsYmFja0Z1
bmN0aW9uJj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7
CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbiY+KCppbXBs
KS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKKworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4
IDNmZTNmMjAuLjQxMmUyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uaApAQCAt
NDAsNiArNDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAgICAgdmlydHVhbCB+
SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbigpOworICAgIEpTQ2FsbGJhY2tEYXRhKiBjYWxsYmFja0Rh
dGEoKSB7IHJldHVybiBtX2RhdGE7IH0KIAogICAgIC8vIEZ1bmN0aW9ucwogICAgIHZpcnR1YWwg
Ym9vbCBjYWxsYmFja1dpdGhOb1BhcmFtKCk7CkBAIC01Nyw2ICs1OCw5IEBAIHByaXZhdGU6CiAg
ICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKIH07CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiopOwor
aW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiYgaW1wbCkgeyByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwCmluZGV4IDY3NDJmYjguLjU1Njg0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcApAQCAtMTA4LDcgKzEwOCw2IEBACiAjaW5jbHVkZSAiTmFtZWRGbG93Q29s
bGVjdGlvbi5jcHAiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmNwcCIKICNpbmNsdWRlICJOb2Rl
LmNwcCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmNwcCIKICNpbmNsdWRlICJOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcCIKICNpbmNsdWRlICJOb2RlSXRlcmF0b3IuY3BwIgogI2luY2x1ZGUgIk5vZGVP
clN0cmluZy5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZp
bHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBhMzRjOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmNwcApAQCAtMCwwICsxLDQxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZU5vZGVG
aWx0ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitOYXRpdmVOb2RlRmlsdGVyOjpOYXRp
dmVOb2RlRmlsdGVyKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNvbmRpdGlvbikKKyAg
ICA6IG1fY29uZGl0aW9uKGNvbmRpdGlvbikKK3sgfQorCit1aW50MTZfdCBOYXRpdmVOb2RlRmls
dGVyOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpCit7CisgICAgLy8gY2FzdCB0byBzaG9ydCBzaWxl
bmNlcyAiZW51bWVyYWwgYW5kIG5vbi1lbnVtZXJhbCB0eXBlcyBpbiByZXR1cm4iIHdhcm5pbmcK
KyAgICByZXR1cm4gbV9jb25kaXRpb24gPyBtX2NvbmRpdGlvbi0+YWNjZXB0Tm9kZShub2RlKSA6
IHN0YXRpY19jYXN0PHVpbnQxNl90PihGSUxURVJfQUNDRVBUKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IwNzhlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgTmF0aXZlTm9kZUZpbHRlcl9oCisjZGVmaW5lIE5hdGl2ZU5vZGVGaWx0
ZXJfaAorCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorI2luY2x1ZGUgIk5vZGVGaWx0ZXJDb25k
aXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOYXRpdmVOb2RlRmlsdGVy
IGZpbmFsIDogcHVibGljIE5vZGVGaWx0ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TmF0
aXZlTm9kZUZpbHRlcj4gY3JlYXRlKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNvbmRp
dGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdGl2ZU5vZGVGaWx0
ZXIoV1RGOjptb3ZlKGNvbmRpdGlvbikpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPE5hdGl2
ZU5vZGVGaWx0ZXI+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBOYXRpdmVOb2RlRmlsdGVyKCkpOworICAgIH0KKworICAgIHZpcnR1YWwgdWludDE2X3QgYWNj
ZXB0Tm9kZShOb2RlKikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldENvbmRpdGlvbihSZWZQdHI8
Tm9kZUZpbHRlckNvbmRpdGlvbj4mJiBjb25kaXRpb24pIHsgQVNTRVJUKCFtX2NvbmRpdGlvbik7
IG1fY29uZGl0aW9uID0gY29uZGl0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTmF0
aXZlTm9kZUZpbHRlcihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4mJik7CisKKyAgICBOYXRp
dmVOb2RlRmlsdGVyKCkgeyB9CisKKyAgICBSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gbV9j
b25kaXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOYXRp
dmVOb2RlRmlsdGVyX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4ZGFiYzU0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlRmlsdGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdo
dCAoQykgMjAwMCBGcmVkZXJpayBIb2xsamVuIChmcmVkZXJpay5ob2xsamVuQGhpZy5ubykKLSAq
IENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogQ29weXJp
Z2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCi0KLSNpbmNsdWRl
ICJOb2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc2hvcnQgTm9kZUZpbHRlcjo6YWNj
ZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAg
Ly8gY2FzdCB0byBzaG9ydCBzaWxlbmNlcyAiZW51bWVyYWwgYW5kIG5vbi1lbnVtZXJhbCB0eXBl
cyBpbiByZXR1cm4iIHdhcm5pbmcKLSAgICByZXR1cm4gbV9jb25kaXRpb24gPyBtX2NvbmRpdGlv
bi0+YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZSkgOiBzdGF0aWNfY2FzdDxzaG9ydD4oRklMVEVSX0FD
Q0VQVCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5o
CmluZGV4IDk2MTk3ZDkuLjI2Zjc2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaApAQCAtMyw3
ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwMCBGcmVkZXJpayBIb2xsamVuIChmcmVkZXJp
ay5ob2xsamVuQGhpZy5ubykKICAqIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1r
QHBvc3QuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWlu
aWdAZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwOCwgMjAw
OSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI1LDcwICsyNSw1MCBAQAogI2lmbmRlZiBOb2RlRmlsdGVyX2gKICNkZWZpbmUgTm9k
ZUZpbHRlcl9oCiAKLSNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKLSNpbmNsdWRlICJOb2Rl
RmlsdGVyQ29uZGl0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE5vZGVG
aWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb2RlRmlsdGVyPiB7Ci0gICAgcHVibGljOgotICAg
ICAgICAvKioKLSAgICAgICAgICogVGhlIGZvbGxvd2luZyBjb25zdGFudHMgYXJlIHJldHVybmVk
IGJ5IHRoZSBhY2NlcHROb2RlKCkKLSAgICAgICAgICogbWV0aG9kOgotICAgICAgICAgKi8KLSAg
ICAgICAgZW51bSB7Ci0gICAgICAgICAgICBGSUxURVJfQUNDRVBUID0gMSwKLSAgICAgICAgICAg
IEZJTFRFUl9SRUpFQ1QgPSAyLAotICAgICAgICAgICAgRklMVEVSX1NLSVAgICA9IDMKLSAgICAg
ICAgfTsKK2NsYXNzIE5vZGU7CiAKLSAgICAgICAgLyoqCi0gICAgICAgICAqIFRoZXNlIGFyZSB0
aGUgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIHdoYXRUb1Nob3cgcGFyYW1ldGVyLgotICAgICAg
ICAgKiBUaGV5IGFyZSB0aGUgc2FtZSBhcyB0aGUgc2V0IG9mIHBvc3NpYmxlIHR5cGVzIGZvciBO
b2RlLCBhbmQKLSAgICAgICAgICogdGhlaXIgdmFsdWVzIGFyZSBkZXJpdmVkIGJ5IHVzaW5nIGEg
Yml0IHBvc2l0aW9uIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgICogdG8gdGhlIHZhbHVlIG9mIE5v
ZGVUeXBlIGZvciB0aGUgZXF1aXZhbGVudCBub2RlIHR5cGUuCi0gICAgICAgICAqLwotICAgICAg
ICBlbnVtIHsKLSAgICAgICAgICAgIFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9IDB4
RkZGRkZGRkYsCi0gICAgICAgICAgICBTSE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgICAgPSAw
eDAwMDAwMDAxLAotICAgICAgICAgICAgU0hPV19BVFRSSUJVVEUgICAgICAgICAgICAgICAgID0g
MHgwMDAwMDAwMiwKLSAgICAgICAgICAgIFNIT1dfVEVYVCAgICAgICAgICAgICAgICAgICAgICA9
IDB4MDAwMDAwMDQsCi0gICAgICAgICAgICBTSE9XX0NEQVRBX1NFQ1RJT04gICAgICAgICAgICAg
PSAweDAwMDAwMDA4LAotICAgICAgICAgICAgU0hPV19FTlRJVFlfUkVGRVJFTkNFICAgICAgICAg
ID0gMHgwMDAwMDAxMCwKLSAgICAgICAgICAgIFNIT1dfRU5USVRZICAgICAgICAgICAgICAgICAg
ICA9IDB4MDAwMDAwMjAsCi0gICAgICAgICAgICBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04g
ICAgPSAweDAwMDAwMDQwLAotICAgICAgICAgICAgU0hPV19DT01NRU5UICAgICAgICAgICAgICAg
ICAgID0gMHgwMDAwMDA4MCwKLSAgICAgICAgICAgIFNIT1dfRE9DVU1FTlQgICAgICAgICAgICAg
ICAgICA9IDB4MDAwMDAxMDAsCi0gICAgICAgICAgICBTSE9XX0RPQ1VNRU5UX1RZUEUgICAgICAg
ICAgICAgPSAweDAwMDAwMjAwLAotICAgICAgICAgICAgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAg
ICAgICAgID0gMHgwMDAwMDQwMCwKLSAgICAgICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAg
ICAgICAgICA9IDB4MDAwMDA4MDAKLSAgICAgICAgfTsKK2NsYXNzIE5vZGVGaWx0ZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxOb2RlRmlsdGVyPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Tm9kZUZp
bHRlcigpIHsgfQorICAgIHZpcnR1YWwgdWludDE2X3QgYWNjZXB0Tm9kZShOb2RlKikgPSAwOwog
Ci0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUZpbHRlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZUZp
bHRlckNvbmRpdGlvbj4gY29uZGl0aW9uKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOb2RlRmlsdGVyKGNvbmRpdGlvbikpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgc3RhdGljIFJlZjxOb2RlRmlsdGVyPiBjcmVhdGUoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOb2RlRmlsdGVyKCkpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKLQotICAg
ICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZv
bGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRo
ZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2Fs
bG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAgIHNob3J0IGFjY2VwdE5vZGUoTm9kZSogbm9kZSkg
Y29uc3QgeyByZXR1cm4gYWNjZXB0Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9y
bWFsV29ybGQoKSwgbm9kZSksIG5vZGUpOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldENv
bmRpdGlvbihQYXNzUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+IGNvbmRpdGlvbikgeyBBU1NF
UlQoIW1fY29uZGl0aW9uKTsgbV9jb25kaXRpb24gPSBjb25kaXRpb247IH0KLQotICAgIHByaXZh
dGU6Ci0gICAgICAgIGV4cGxpY2l0IE5vZGVGaWx0ZXIoUGFzc1JlZlB0cjxOb2RlRmlsdGVyQ29u
ZGl0aW9uPiBjb25kaXRpb24pIDogbV9jb25kaXRpb24oY29uZGl0aW9uKSB7IH0KLSAgICAgICAg
Tm9kZUZpbHRlcigpIHt9CisgICAgLyoKKyAgICAgKiBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyBh
cmUgcmV0dXJuZWQgYnkgdGhlIGFjY2VwdE5vZGUoKQorICAgICAqIG1ldGhvZDoKKyAgICAgKi8K
KyAgICBlbnVtIHsKKyAgICAgICAgRklMVEVSX0FDQ0VQVCA9IDEsCisgICAgICAgIEZJTFRFUl9S
RUpFQ1QgPSAyLAorICAgICAgICBGSUxURVJfU0tJUCAgID0gMworICAgIH07CiAKLSAgICAgICAg
UmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+IG1fY29uZGl0aW9uOworICAgIC8qCisgICAgICog
VGhlc2UgYXJlIHRoZSBhdmFpbGFibGUgdmFsdWVzIGZvciB0aGUgd2hhdFRvU2hvdyBwYXJhbWV0
ZXIuCisgICAgICogVGhleSBhcmUgdGhlIHNhbWUgYXMgdGhlIHNldCBvZiBwb3NzaWJsZSB0eXBl
cyBmb3IgTm9kZSwgYW5kCisgICAgICogdGhlaXIgdmFsdWVzIGFyZSBkZXJpdmVkIGJ5IHVzaW5n
IGEgYml0IHBvc2l0aW9uIGNvcnJlc3BvbmRpbmcKKyAgICAgKiB0byB0aGUgdmFsdWUgb2YgTm9k
ZVR5cGUgZm9yIHRoZSBlcXVpdmFsZW50IG5vZGUgdHlwZS4KKyAgICAgKi8KKyAgICBlbnVtIHsK
KyAgICAgICAgU0hPV19BTEwgICAgICAgICAgICAgICAgICAgICAgID0gMHhGRkZGRkZGRiwKKyAg
ICAgICAgU0hPV19FTEVNRU5UICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMSwKKyAgICAg
ICAgU0hPV19BVFRSSUJVVEUgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMiwKKyAgICAgICAg
U0hPV19URVhUICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwNCwKKyAgICAgICAgU0hP
V19DREFUQV9TRUNUSU9OICAgICAgICAgICAgID0gMHgwMDAwMDAwOCwKKyAgICAgICAgU0hPV19F
TlRJVFlfUkVGRVJFTkNFICAgICAgICAgID0gMHgwMDAwMDAxMCwKKyAgICAgICAgU0hPV19FTlRJ
VFkgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAyMCwKKyAgICAgICAgU0hPV19QUk9DRVNT
SU5HX0lOU1RSVUNUSU9OICAgID0gMHgwMDAwMDA0MCwKKyAgICAgICAgU0hPV19DT01NRU5UICAg
ICAgICAgICAgICAgICAgID0gMHgwMDAwMDA4MCwKKyAgICAgICAgU0hPV19ET0NVTUVOVCAgICAg
ICAgICAgICAgICAgID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU0hPV19ET0NVTUVOVF9UWVBFICAg
ICAgICAgICAgID0gMHgwMDAwMDIwMCwKKyAgICAgICAgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAg
ICAgICAgID0gMHgwMDAwMDQwMCwKKyAgICAgICAgU0hPV19OT1RBVElPTiAgICAgICAgICAgICAg
ICAgID0gMHgwMDAwMDgwMAogICAgIH07Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbAppbmRleCBkZWVlMGFiLi5mYjczNjQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVGaWx0ZXIuaWRsCkBAIC0yMCwxNiArMjAsMTIgQEAKIAogLy8gSW50cm9kdWNl
ZCBpbiBET00gTGV2ZWwgMjoKIFsKLSAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKLSAgICBKU0N1
c3RvbVRvTmF0aXZlT2JqZWN0LAogICAgIE9iakNQcm90b2NvbCwKLSAgICBDUFBQdXJlSW50ZXJm
YWNlLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBOb2RlRmls
dGVyIHsKK10gY2FsbGJhY2sgaW50ZXJmYWNlIE5vZGVGaWx0ZXIgewogICAgIC8vIENvbnN0YW50
cyByZXR1cm5lZCBieSBhY2NlcHROb2RlCi0gICAgY29uc3Qgc2hvcnQgICAgICAgICAgICAgICBG
SUxURVJfQUNDRVBUICAgICAgICAgICAgICAgICAgPSAxOwotICAgIGNvbnN0IHNob3J0ICAgICAg
ICAgICAgICAgRklMVEVSX1JFSkVDVCAgICAgICAgICAgICAgICAgID0gMjsKLSAgICBjb25zdCBz
aG9ydCAgICAgICAgICAgICAgIEZJTFRFUl9TS0lQICAgICAgICAgICAgICAgICAgICA9IDM7Cisg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklMVEVSX0FDQ0VQVCA9IDE7CisgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgRklMVEVSX1JFSkVDVCA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
RklMVEVSX1NLSVAgPSAzOwogCiAgICAgLy8gQ29uc3RhbnRzIGZvciB3aGF0VG9TaG93CiAgICAg
Y29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBTSE9XX0FMTCAgICAgICAgICAgICAgICAgICAgICAg
PSAweEZGRkZGRkZGOwpAQCAtNDYsNyArNDIsMTAgQEAKICAgICBjb25zdCB1bnNpZ25lZCBsb25n
ICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01FTlQgICAgICAgICA9IDB4MDAwMDA0MDA7CiAgICAg
Y29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBTSE9XX05PVEFUSU9OICAgICAgICAgICAgICAgICAg
PSAweDAwMDAwODAwOwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBzaG9ydCBhY2NlcHRO
b2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsKLQorI2lmIGRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCisgICAgc2hvcnQg
YWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIE5vZGUgbik7CisjZWxzZQor
ICAgIFtDdXN0b21dIHVuc2lnbmVkIHNob3J0IGFjY2VwdE5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVk
XSBvcHRpb25hbCBOb2RlIG4pOworI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5kZXggZTQ3OGQ5NC4uNzJjOWVlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAtMjksNyArMjksNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXNob3J0IE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5v
ZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3QKK3Nob3J0IE5vZGVGaWx0ZXJDb25kaXRp
b246OmFjY2VwdE5vZGUoTm9kZSopIGNvbnN0CiB7CiAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJ
TFRFUl9BQ0NFUFQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRl
ckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uaApp
bmRleCA4YmEzOGY2Li4yYjlhYjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29u
ZGl0aW9uLmgKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IE5vZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxOb2RlRmlsdGVyQ29uZGl0
aW9uPiB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5Ob2RlRmlsdGVyQ29uZGl0aW9u
KCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSos
IE5vZGUqKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShOb2Rl
KikgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRBZ2dyZWdhdGUoSlNDOjpT
bG90VmlzaXRvciYpIHsgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAK
aW5kZXggZTg3MDFlZS4uYjU5OTc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAK
QEAgLTg5LDExICs4OSwxMSBAQCBOb2RlSXRlcmF0b3I6On5Ob2RlSXRlcmF0b3IoKQogICAgIHJv
b3QoKS0+ZG9jdW1lbnQoKS5kZXRhY2hOb2RlSXRlcmF0b3IodGhpcyk7CiB9CiAKLVBhc3NSZWZQ
dHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpuZXh0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2Rl
KEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX2RldGFjaGVkKSB7CiAgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKICAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0OwpAQCAtMTA0LDkgKzEw
NCw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpuZXh0Tm9kZShKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAgIC8vIEluIG90aGVyIHdvcmRz
LCBGSUxURVJfUkVKRUNUIGRvZXMgbm90IHBhc3Mgb3ZlciBkZXNjZW5kYW50cwogICAgICAgICAv
LyBvZiB0aGUgcmVqZWN0ZWQgbm9kZS4gSGVuY2UsIEZJTFRFUl9SRUpFQ1QgaXMgdGhlIHNhbWUg
YXMgRklMVEVSX1NLSVAuCiAgICAgICAgIFJlZlB0cjxOb2RlPiBwcm92aXNpb25hbFJlc3VsdCA9
IG1fY2FuZGlkYXRlTm9kZS5ub2RlOwotICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGFj
Y2VwdE5vZGUoc3RhdGUsIHByb3Zpc2lvbmFsUmVzdWx0LmdldCgpKSA9PSBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigp
KQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJvb2wgbm9kZVdhc0FjY2VwdGVkID0gYWNj
ZXB0Tm9kZShwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FD
Q0VQVDsKICAgICAgICAgaWYgKG5vZGVXYXNBY2NlcHRlZCkgewogICAgICAgICAgICAgbV9yZWZl
cmVuY2VOb2RlID0gbV9jYW5kaWRhdGVOb2RlOwogICAgICAgICAgICAgcmVzdWx0ID0gcHJvdmlz
aW9uYWxSZXN1bHQucmVsZWFzZSgpOwpAQCAtMTE4LDExICsxMTYsMTEgQEAgUGFzc1JlZlB0cjxO
b2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgRXhjZXB0
aW9uQ29kZSYgZWMKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0
cjxOb2RlPiBOb2RlSXRlcmF0b3I6OnByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6OnByZXZp
b3VzTm9kZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9kZXRhY2hlZCkgewogICAg
ICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgUmVmUHRyPE5vZGU+IHJlc3VsdDsKQEAgLTEz
Myw5ICsxMzEsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2Rl
KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgRXhjZXB0aW9uQ29kZQogICAgICAgICAvLyBJbiBvdGhl
ciB3b3JkcywgRklMVEVSX1JFSkVDVCBkb2VzIG5vdCBwYXNzIG92ZXIgZGVzY2VuZGFudHMKICAg
ICAgICAgLy8gb2YgdGhlIHJlamVjdGVkIG5vZGUuIEhlbmNlLCBGSUxURVJfUkVKRUNUIGlzIHRo
ZSBzYW1lIGFzIEZJTFRFUl9TS0lQLgogICAgICAgICBSZWZQdHI8Tm9kZT4gcHJvdmlzaW9uYWxS
ZXN1bHQgPSBtX2NhbmRpZGF0ZU5vZGUubm9kZTsKLSAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0
ZWQgPSBhY2NlcHROb2RlKHN0YXRlLCBwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZp
bHRlcjo6RklMVEVSX0FDQ0VQVDsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRl
ZCA9IGFjY2VwdE5vZGUocHJvdmlzaW9uYWxSZXN1bHQuZ2V0KCkpID09IE5vZGVGaWx0ZXI6OkZJ
TFRFUl9BQ0NFUFQ7CiAgICAgICAgIGlmIChub2RlV2FzQWNjZXB0ZWQpIHsKICAgICAgICAgICAg
IG1fcmVmZXJlbmNlTm9kZSA9IG1fY2FuZGlkYXRlTm9kZTsKICAgICAgICAgICAgIHJlc3VsdCA9
IHByb3Zpc2lvbmFsUmVzdWx0LnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaApp
bmRleCA1Zjg5ZTYyLi40NzEzOWIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaApAQCAt
NDMsOCArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH0KICAgICAgICAgfk5v
ZGVJdGVyYXRvcigpOwogCi0gICAgICAgIFBhc3NSZWZQdHI8Tm9kZT4gbmV4dE5vZGUoSlNDOjpF
eGVjU3RhdGUqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIFBhc3NSZWZQdHI8Tm9kZT4gcHJl
dmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICBQYXNz
UmVmUHRyPE5vZGU+IG5leHROb2RlKEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgUGFzc1JlZlB0
cjxOb2RlPiBwcmV2aW91c05vZGUoRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICB2b2lkIGRldGFj
aCgpOwogCiAgICAgICAgIE5vZGUqIHJlZmVyZW5jZU5vZGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
ZmVyZW5jZU5vZGUubm9kZS5nZXQoKTsgfQpAQCAtNTMsMTEgKzUzLDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgYW55IG5v
ZGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudCB0cmVlLgogICAgICAgICB2b2lkIG5vZGVX
aWxsQmVSZW1vdmVkKE5vZGUmKTsKIAotICAgICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBmdW5j
dGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0aXZl
LUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJlYWQg
bm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAgIFBh
c3NSZWZQdHI8Tm9kZT4gbmV4dE5vZGUoRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG5leHRO
b2RlKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCByZWZlcmVuY2VO
b2RlKCkpLCBlYyk7IH0KLSAgICAgICAgUGFzc1JlZlB0cjxOb2RlPiBwcmV2aW91c05vZGUoRXhj
ZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIHByZXZpb3VzTm9kZShleGVjU3RhdGVGcm9tTm9kZSht
YWluVGhyZWFkTm9ybWFsV29ybGQoKSwgcmVmZXJlbmNlTm9kZSgpKSwgZWMpOyB9Ci0KICAgICBw
cml2YXRlOgogICAgICAgICBOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LCBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+LCBib29sIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IDVjZjc4
ZGYuLmE5OTUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3Iu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0zMCw4ICsz
MCw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcmVmZXJlbmNlTm9kZTsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwb2ludGVyQmVmb3JlUmVmZXJlbmNlTm9kZTsKIAot
ICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgUmFpc2VzRXhjZXB0aW9uXSBOb2RlIG5leHROb2Rl
KCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBSYWlzZXNFeGNlcHRpb25dIE5vZGUgcHJl
dmlvdXNOb2RlKCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZSBuZXh0Tm9kZSgpOworICAg
IFtSYWlzZXNFeGNlcHRpb25dIE5vZGUgcHJldmlvdXNOb2RlKCk7CiAgICAgdm9pZCBkZXRhY2go
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKaW5kZXggMWMyMjcwNS4uNzYzZjE0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgTm9kZUl0ZXJhdG9y
QmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNpZ25l
ZCBsb25nIHdoYXQKIHsKIH0KIAotc2hvcnQgTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0CitzaG9ydCBOb2RlSXRlcmF0
b3JCYXNlOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRv
IGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVudGl0
eVJlZmVyZW5jZXMuCiAKQEAgLTQ4LDcgKzQ4LDcgQEAgc2hvcnQgTm9kZUl0ZXJhdG9yQmFzZTo6
YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0CiAgICAg
ICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUDsKICAgICBpZiAoIW1fZmlsdGVyKQog
ICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLSAgICByZXR1cm4gbV9m
aWx0ZXItPmFjY2VwdE5vZGUoc3RhdGUsIG5vZGUpOworICAgIHJldHVybiBtX2ZpbHRlci0+YWNj
ZXB0Tm9kZShub2RlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZl
cnNhbC5oCmluZGV4IDE1ZjA5ZTIuLjZhY2ZiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKQEAg
LTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJvdGVjdGVkOgogICAg
ICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hh
dFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzKTsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBj
b25zdDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAKICAgICBwcml2
YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIu
Y3BwCmluZGV4IGRmMDM0YjEuLjA1ODM2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAK
QEAgLTU0LDI4ICs1NCwyNCBAQCBpbmxpbmUgTm9kZSogVHJlZVdhbGtlcjo6c2V0Q3VycmVudChQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsKIH0KIAot
Tm9kZSogVHJlZVdhbGtlcjo6cGFyZW50Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2Rl
KiBUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1f
Y3VycmVudDsKICAgICB3aGlsZSAobm9kZSAhPSByb290KCkpIHsKICAgICAgICAgbm9kZSA9IG5v
ZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlKQotICAgICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBu
b2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkK
LSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAg
ICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQog
ICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAgIH0KLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6
Zmlyc3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpmaXJz
dENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50LT5maXJz
dENoaWxkKCk7IG5vZGU7ICkgewotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNj
ZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+
aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgc2hvcnQgYWNj
ZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIHN3aXRjaCAo
YWNjZXB0Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFzZSgpOwpAQCAt
OTYsMTkgKzkyLDE3IEBAIE5vZGUqIFRyZWVXYWxrZXI6OmZpcnN0Q2hpbGQoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFy
ZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgaWYgKCFwYXJlbnQgfHwgcGFy
ZW50ID09IHJvb3QoKSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50KQotICAgICAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgbm9k
ZSA9IHBhcmVudDsKICAgICAgICAgfSB3aGlsZSAobm9kZSk7CiAgICAgfQotICAgIHJldHVybiAw
OworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6bGFzdENoaWxkKCkKIHsK
ICAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50LT5sYXN0Q2hpbGQoKTsgbm9k
ZTsgKSB7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRl
LCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24o
KSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0
ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgc3dpdGNoIChhY2NlcHROb2RlUmVz
dWx0KSB7CiAgICAgICAgICAgICBjYXNlIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ6CiAgICAg
ICAgICAgICAgICAgbV9jdXJyZW50ID0gbm9kZS5yZWxlYXNlKCk7CkBAIC0xMjksMjMgKzEyMywy
MSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+
cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgaWYgKCFwYXJlbnQgfHwgcGFyZW50ID09IHJvb3Qo
KSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50KQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgbm9kZSA9IHBhcmVudDsK
ICAgICAgICAgfSB3aGlsZSAobm9kZSk7CiAgICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVy
biBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxpbmcoSlNDOjpF
eGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKIHsK
ICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICBpZiAobm9kZSA9PSByb290
KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB3aGls
ZSAoMSkgewogICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBzaWJsaW5nID0gbm9kZS0+cHJldmlv
dXNTaWJsaW5nKCk7IHNpYmxpbmc7ICkgewotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJl
c3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIHNpYmxpbmcuZ2V0KCkpOwotICAgICAgICAgICAgaWYg
KHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHNpYmxp
bmcuZ2V0KCkpOwogICAgICAgICAgICAgc3dpdGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAg
ICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAg
ICAgICAgICBtX2N1cnJlbnQgPSBzaWJsaW5nLnJlbGVhc2UoKTsKQEAgLTE2NCwyNSArMTU2LDIx
IEBAIE5vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZyhKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUpCiAgICAgICAgIH0KICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAg
ICAgaWYgKCFub2RlIHx8IG5vZGUgPT0gcm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdl
dCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHNo
b3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBp
ZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAK
LU5vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05v
ZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9
IG1fY3VycmVudDsKICAgICBpZiAobm9kZSA9PSByb290KCkpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBmb3IgKFJl
ZlB0cjxOb2RlPiBzaWJsaW5nID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsgc2libGluZzsgKSB7Ci0g
ICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgc2li
bGluZy5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlv
bigpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgc2hvcnQgYWNjZXB0
Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc2libGluZy5nZXQoKSk7CiAgICAgICAgICAgICBzd2l0
Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKICAgICAgICAgICAgICAgICBjYXNlIE5vZGVGaWx0ZXI6
OkZJTFRFUl9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IHNpYmxpbmcu
cmVsZWFzZSgpOwpAQCAtMjAxLDMxICsxODksMjUgQEAgTm9kZSogVHJlZVdhbGtlcjo6bmV4dFNp
YmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICB9CiAgICAgICAgIG5vZGUgPSBu
b2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSB8fCBub2RlID09IHJvb3QoKSkK
LSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0g
YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0
ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9k
ZShub2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRl
cjo6RklMVEVSX0FDQ0VQVCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91c05vZGUo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKCkK
IHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICB3aGlsZSAobm9kZSAh
PSByb290KCkpIHsKICAgICAgICAgd2hpbGUgKE5vZGUqIHByZXZpb3VzU2libGluZyA9IG5vZGUt
PnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgICAgICBub2RlID0gcHJldmlvdXNTaWJsaW5n
OwotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUs
IG5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRp
b24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHNob3J0IGFjY2Vw
dE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKGFj
Y2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHdoaWxlIChOb2RlKiBsYXN0Q2hpbGQgPSBub2Rl
LT5sYXN0Q2hpbGQoKSkgewogICAgICAgICAgICAgICAgIG5vZGUgPSBsYXN0Q2hpbGQ7Ci0gICAg
ICAgICAgICAgICAgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0
KCkpOwotICAgICAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIGFjY2VwdE5v
ZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmIChh
Y2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMjM1LDI5ICsyMTcsMjUgQEAgTm9k
ZSogVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAobm9kZSA9PSByb290KCkpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBDb250
YWluZXJOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghcGFy
ZW50KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgbm9kZSA9IHBhcmVudDsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9
IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3Rh
dGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHNob3J0
IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBpZiAo
YWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQogICAgICAgICAg
ICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAgIH0KLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6bmV4dE5vZGUo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6bmV4dE5vZGUoKQogewog
ICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50OwogQ2hpbGRyZW46CiAgICAgd2hpbGUg
KE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCkpIHsKICAgICAgICAgbm9kZSA9
IGZpcnN0Q2hpbGQ7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2Rl
KHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBzaG9ydCBhY2Nl
cHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2Vw
dE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJl
dHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVS
ZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKQEAgLTI2NSw5ICsyNDMsNyBAQCBD
aGlsZHJlbjoKICAgICB9CiAgICAgd2hpbGUgKE5vZGUqIG5leHRTaWJsaW5nID0gTm9kZVRyYXZl
cnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUsIHJvb3QoKSkpIHsKICAgICAgICAgbm9k
ZSA9IG5leHRTaWJsaW5nOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0
Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFk
RXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgc2hvcnQg
YWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIGlmIChh
Y2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAgICAgICAgICAg
ICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAgICAgICAgIGlmIChhY2NlcHRO
b2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9TS0lQKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2Vy
LmgKaW5kZXggYzQ0MGMyOS4uNmEzZmU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCkBAIC00
NSwyMyArNDUsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb2RlKiBjdXJyZW50
Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQogICAgICAgICB2b2lkIHNl
dEN1cnJlbnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgICAg
ICBOb2RlKiBwYXJlbnROb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIGZpcnN0
Q2hpbGQoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogbGFzdENoaWxkKEpTQzo6RXhl
Y1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIHByZXZpb3VzU2libGluZyhKU0M6OkV4ZWNTdGF0ZSop
OwotICAgICAgICBOb2RlKiBuZXh0U2libGluZyhKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBO
b2RlKiBwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogbmV4dE5v
ZGUoSlNDOjpFeGVjU3RhdGUqKTsKLQotICAgICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBmdW5j
dGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0aXZl
LUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJlYWQg
bm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAgIE5v
ZGUqIHBhcmVudE5vZGUoKSB7IHJldHVybiBwYXJlbnROb2RlKGV4ZWNTdGF0ZUZyb21Ob2RlKG1h
aW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQotICAgICAgICBOb2Rl
KiBmaXJzdENoaWxkKCkgeyByZXR1cm4gZmlyc3RDaGlsZChleGVjU3RhdGVGcm9tTm9kZShtYWlu
VGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAgICAgICAgTm9kZSog
bGFzdENoaWxkKCkgeyByZXR1cm4gbGFzdENoaWxkKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJl
YWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQotICAgICAgICBOb2RlKiBwcmV2
aW91c1NpYmxpbmcoKSB7IHJldHVybiBwcmV2aW91c1NpYmxpbmcoZXhlY1N0YXRlRnJvbU5vZGUo
bWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5v
ZGUqIG5leHRTaWJsaW5nKCkgeyByZXR1cm4gbmV4dFNpYmxpbmcoZXhlY1N0YXRlRnJvbU5vZGUo
bWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5v
ZGUqIHByZXZpb3VzTm9kZSgpIHsgcmV0dXJuIHByZXZpb3VzTm9kZShleGVjU3RhdGVGcm9tTm9k
ZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAgICAgICAg
Tm9kZSogbmV4dE5vZGUoKSB7IHJldHVybiBuZXh0Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWlu
VGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KKyAgICAgICAgTm9kZSog
cGFyZW50Tm9kZSgpOworICAgICAgICBOb2RlKiBmaXJzdENoaWxkKCk7CisgICAgICAgIE5vZGUq
IGxhc3RDaGlsZCgpOworICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAg
Tm9kZSogbmV4dFNpYmxpbmcoKTsKKyAgICAgICAgTm9kZSogcHJldmlvdXNOb2RlKCk7CisgICAg
ICAgIE5vZGUqIG5leHROb2RlKCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBUcmVlV2Fsa2Vy
KFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxO
b2RlRmlsdGVyPiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmlkbAppbmRleCAyNjNhZWZhLi40ODA5ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxr
ZXIuaWRsCkBAIC0yOSwxMiArMjksMTIgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOyAgICAgICAgCiAgICAgW1NldHRlclJhaXNlc0V4Y2Vw
dGlvbl0gYXR0cmlidXRlIE5vZGUgY3VycmVudE5vZGU7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0
U3RhdGVdIE5vZGUgcGFyZW50Tm9kZSgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9k
ZSBmaXJzdENoaWxkKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIGxhc3RDaGls
ZCgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBwcmV2aW91c1NpYmxpbmcoKTsK
LSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgbmV4dFNpYmxpbmcoKTsKLSAgICBbQ2Fs
bFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcHJldmlvdXNOb2RlKCk7Ci0gICAgW0NhbGxXaXRoPVNj
cmlwdFN0YXRlXSBOb2RlIG5leHROb2RlKCk7CisgICAgTm9kZSBwYXJlbnROb2RlKCk7CisgICAg
Tm9kZSBmaXJzdENoaWxkKCk7CisgICAgTm9kZSBsYXN0Q2hpbGQoKTsKKyAgICBOb2RlIHByZXZp
b3VzU2libGluZygpOworICAgIE5vZGUgbmV4dFNpYmxpbmcoKTsKKyAgICBOb2RlIHByZXZpb3Vz
Tm9kZSgpOworICAgIE5vZGUgbmV4dE5vZGUoKTsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260267</attachid>
            <date>2015-08-30 19:43:11 -0700</date>
            <delta_ts>2015-08-30 20:28:35 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>NodeFilter_callback_interface_wip.patch</filename>
            <type>text/plain</type>
            <size>531861</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1m
aWx0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2Nl
cHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQKaW5kZXggY2E1ZGE4NDEuLmVlN2QyMWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0
Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAgUEFTUyB3YWxrZXIu
Zmlyc3RDaGlsZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwogUEFTUyB3YWxrZXIu
bmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAogVGVzdGluZyB3aXRo
IG9iamVjdCBsYWNraW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hp
bGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBu
b3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgp
OyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyB3YWxrZXIuY3Vy
cmVudE5vZGUuaWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2Nl
cHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAn
cm9vdCcKIAogVGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlvbiBhY2NlcHROb2Rl
IHByb3BlcnR5Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5j
dGlvbi4KK1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKLVBB
U1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0
ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fs
a2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQ
QVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rpbmcgd2l0aCBmdW5j
dGlvbiBoYXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nv
bnN0YW50cy1leHBlY3RlZC50eHQKaW5kZXggNDdmYzViMi4uYmZkNjU3MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC0yNCwyMiArMjQsNiBAQCBQ
QVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0lOSEVSSVQgc2hvdWxkIGJlIDAgYW5kIGlzLgogUEFT
Uzogd2luZG93LkNTU1ZhbHVlLkNTU19QUklNSVRJVkVfVkFMVUUgc2hvdWxkIGJlIDEgYW5kIGlz
LgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNUIHNob3VsZCBiZSAyIGFuZCBp
cy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIHNob3VsZCBiZSAzIGFuZCBpcy4K
LVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91bGQgYmUgMSBhbmQgaXMuCi1QQVNT
OiBub2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9k
ZUZpbHRlci5GSUxURVJfU0tJUCBzaG91bGQgYmUgMyBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVy
LlNIT1dfQUxMIHNob3VsZCBiZSA0Mjk0OTY3Mjk1IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX1RFWFQg
c2hvdWxkIGJlIDQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0NEQVRBX1NFQ1RJT04g
c2hvdWxkIGJlIDggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0VOVElUWV9SRUZFUkVO
Q0Ugc2hvdWxkIGJlIDE2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19FTlRJVFkgc2hv
dWxkIGJlIDMyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19QUk9DRVNTSU5HX0lOU1RS
VUNUSU9OIHNob3VsZCBiZSA2NCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQ09NTUVO
VCBzaG91bGQgYmUgMTI4IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCBz
aG91bGQgYmUgMjU2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBF
IHNob3VsZCBiZSA1MTIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UIHNob3VsZCBiZSAxMDI0IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19OT1RB
VElPTiBzaG91bGQgYmUgMjA0OCBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuTm9kZUZpbHRlci5GSUxU
RVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5Ob2RlRmlsdGVyLkZJ
TFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgogUEFTUzogd2luZG93Lk5vZGVGaWx0ZXIu
RklMVEVSX1NLSVAgc2hvdWxkIGJlIDMgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbAppbmRleCBkY2UyNTg4Li4xOTViYmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9jb25zdGFudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhLCBiKQogICAgIHByaW50
KG1lc3NhZ2UsIGNvbG9yKTsKIH0KIAotdmFyIGNzc1J1bGUsIGNzc1ZhbHVlLCBub2RlRmlsdGVy
LCBldmVudDsKK3ZhciBjc3NSdWxlLCBjc3NWYWx1ZSwgZXZlbnQ7CiAKIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpAQCAtNjYsMzQgKzY2LDYgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICBzaG91bGRCZSgid2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNU
IiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIiwgMyk7CiAK
LSAgICB2YXIgbm9kZUl0ZXJhdG9yOwotICAgIHRyeSB7Ci0gICAgICAgIG5vZGVJdGVyYXRvciA9
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7IHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7IH0sIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwotICAg
IH0gY2F0Y2goZSkgewotICAgICAgICBub2RlSXRlcmF0b3IgPSBuZXcgT2JqZWN0KCk7Ci0gICAg
fQotICAgIAotICAgIG5vZGVGaWx0ZXIgPSBub2RlSXRlcmF0b3IuZmlsdGVyOwotICAgIHNob3Vs
ZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQiLCAxKTsKLSAgICBzaG91bGRCZSgibm9kZUZp
bHRlci5GSUxURVJfUkVKRUNUIiwgMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuRklMVEVS
X1NLSVAiLCAzKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0FMTCIsIDB4RkZGRkZG
RkYpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRUxFTUVOVCIsIDB4MDAwMDAwMDEp
OwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFIiwgMHgwMDAwMDAwMik7
Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19URVhUIiwgMHgwMDAwMDAwNCk7Ci0gICAg
c2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OIiwgMHgwMDAwMDAwOCk7Ci0g
ICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFlfUkVGRVJFTkNFIiwgMHgwMDAwMDAx
MCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFkiLCAweDAwMDAwMDIwKTsK
LSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iLCAw
eDAwMDAwMDQwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0NPTU1FTlQiLCAweDAw
MDAwMDgwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UIiwgMHgwMDAw
MDEwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBFIiwgMHgw
MDAwMDIwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9GUkFHTUVO
VCIsIDB4MDAwMDA0MDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfTk9UQVRJT04i
LCAweDAwMDAwODAwKTsKLQogICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5GSUxURVJf
QUNDRVBUIiwgMSk7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5Ob2RlRmlsdGVyLkZJTFRFUl9SRUpF
Q1QiLCAyKTsKICAgICBzaG91bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIuRklMVEVSX1NLSVAiLCAz
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbAppbmRl
eCA5N2QyZmFkLi4wYjM5ZGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy5odG1sCkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRy
eSB7CiAgICAgICBub2RlRmlsdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgZnVuY3Rpb24gKCkge30sIGZhbHNlKS5maWx0
ZXI7CiAgICAgfSBjYXRjaChlKSB7fQotICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5w
cm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOworICAgIHNob3VsZEJl
KCJGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOwog
CiAgICAgb3JpZ2luYWxOb2RlUHJvdG90eXBlID0gd2luZG93Lk5vZGUucHJvdG90eXBlOwogICAg
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWdjLmh0bWwKaW5kZXggMDY0OWFkMi4u
YTIwNGM0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2Mu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sCkBAIC0z
LDggKzMsOCBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgIAotdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgMCwgZmFsc2UpOwotdmFyIHdhbGtl
ciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAwLCBmYWxzZSk7Cit2YXIgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsLCBmYWxzZSk7Cit2
YXIgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwsIGZhbHNlKTsKIAogLy8gY3JlYXRlIGxvdHMgb2Ygb2JqZWN0
cyB0byBmb3JjZSBhIGdhcmJhZ2UgY29sbGVjdGlvbgogIHZhciBpID0gMDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0
CmluZGV4IDVlNTQ2ODYuLmQ0YTk4YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMzksOCArMzksNiBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJs
ZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDBdCiAqIG5hbWUKIFtDb25maWd1cmFi
bGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiBOb2Rl
RmlsdGVyXQotKiBwcm90b3R5cGUKLVtDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBm
YWxzZSwgd3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogW29iamVjdCBOb2RlRmlsdGVyUHJvdG90eXBl
XV0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0CmluZGV4IGQyMTg2NDUuLmU3N2M0YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTE4OTAsNDEg
KzE4OTAsNDEgQEAgUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlMKIFBBU1MgVHJlZVdhbGtlciBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRl
ci5TSE9XX0FMTCwgbnVsbCwgZmFsc2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmlvdXNO
b2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoOSkgCiBQQVNTIFRyZWVXYWxrZXIgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVGaWx0ZXIuU0hP
V19BTEwsIG51bGwsIGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHROb2RlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoMTApIAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9mYWxzZTogTm9kZUZpbHRl
ciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6
IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJw
cm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1JF
SkVDVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29u
c3RhbnQgRklMVEVSX1JFSkVDVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRf
ZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IEZJTFRFUl9SRUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0FMTCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3Nl
cnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVy
dHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2Rl
RmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBvYmpl
Y3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVy
IGludGVyZmFjZTogY29uc3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBv
biBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19URVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9k
ZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBm
YWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19U
RVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1G
QUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04g
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIG9iamVjdCAKLUZB
SUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBv
biBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hv
dWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRy
dWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVS
RU5DRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEg
InByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19QUk9D
RVNTSU5HX0lOU1RSVUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3Qg
aGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJ
T04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEg
InByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9D
VU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfRE9DVU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0
X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5
IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0RPQ1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBO
b2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBFIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBO
b2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVk
IGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9X
X0RPQ1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UX0ZSQUdNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxz
ZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBl
Y3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19ET0NVTUVOVF9GUkFHTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJm
YWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9U
QVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9k
ZShOb2RlKSBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3Rv
dHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShO
b2RlKSAKIEZBSUwgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIERP
TVRva2VuTGlzdCBleHBlY3RlZCAiW29iamVjdCBGdW5jdGlvbl0iIGJ1dCBnb3QgIltvYmplY3Qg
RE9NVG9rZW5MaXN0Q29uc3RydWN0b3JdIgogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGggCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fs
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9E
b2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA3MmVhZDUzLi4zOGVm
MDA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vbm9kZXMvRG9j
dW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0ZWQu
dHh0CkBAIC0zLDUgKzMsNSBAQCBQQVNTIFJlcXVpcmVkIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVl
V2Fsa2VyIHNob3VsZCBiZSByZXF1aXJlZC4KIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRzIHRvIGNy
ZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgxIHBhc3NlZCkuIAogUEFTUyBPcHRp
b25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDIg
cGFzc2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNo
b3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIG51bGwpLiAKLUZBSUwgT3B0aW9uYWwgYXJndW1l
bnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgzIHBhc3NlZCwgZnVu
Y3Rpb24pLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSBv
cHRpb25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4
cGVjdGVkLnR4dAppbmRleCA0ZDU5ODZjNC4uOGE1NmQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLWV4cGVjdGVkLnR4dApAQCAtNSw3NDMgKzUsNzQzIEBAIFBBU1MgY3JlYXRlTm9kZUl0ZXJh
dG9yKCkgd2l0aCBudWxsIGFzIGFyZ3VtZW50cwogRkFJTCBjcmVhdGVOb2RlSXRlcmF0b3IoKSB3
aXRoIHVuZGVmaW5lZCBhcyBhcmd1bWVudHMgYXNzZXJ0X2VxdWFsczogd2hhdFRvU2hvdyBleHBl
Y3RlZCA0Mjk0OTY3Mjk1IGJ1dCBnb3QgMAogUEFTUyBQcm9wYWdhdGUgZXhjZXB0aW9uIGZyb20g
ZmlsdGVyIGZ1bmN0aW9uIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
YywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
YywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRD
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0
eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5
cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3RE
aXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0
ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25D
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENv
bW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Nm
cmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJz
YWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9k
b20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CmluZGV4IDlhYmVkMzAuLjY1NTc4
NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwv
VHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
ZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3NDIgKzEsNzQzIEBA
CiAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3Vt
ZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJUcmVlV2Fs
a2VyIHRlc3RzIiBidXQgZ290IG51bGwKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQg
VGV4dCBub2RlICJXeHl6YWJjZCIgYnV0IGdvdCBudWxsCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3Rl
ZCBUZXh0IG5vZGUgIkVmZ2hpamtsIiBidXQgZ290IENvbW1lbnQgbm9kZSA8IS0tIkNvbW1lbnRl
ciIgYW5kICJjb21tZW50YXRvciIgbWVhbiBkaWZmZXJlbnQgdGhpbmdzLiAgSSd2Li4uLS0+CiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJkbyByZSBt
aSBmYSBzbyBsYSB0aSIgYnV0IGdvdCBDb21tZW50IG5vZGUgPCEtLUkgbWFsaWNpb3VzbHkgY3Jl
YXRlZCBhIGNvbW1lbnQgdGhhdCB3aWxsIGJyZWFrIGluY2F1dGlvdS4uLi0tPgogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRU
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Y29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVz
dERpdiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRT
aWJsaW5nKCkgZXhwZWN0ZWQgVGV4dCBub2RlICJJamtsbW5vcAorIiBidXQgZ290IENvbW1lbnQg
bm9kZSA8IS0tQWxwaGFiZXQgc291cD8tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVt
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50
LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYXZlcnNhbC9zaXpl
LXplcm8tcnVuLmh0bWwgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1s
CmluZGV4IGM2N2IyMmIuLjM1YjU0YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYXZlcnNh
bC9zaXplLXplcm8tcnVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3NpemUtemVy
by1ydW4uaHRtbApAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIHRleHRu
b2RlMi5ub2RlVmFsdWUgPSAiIjsKICAgICAKICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmJvZHk7
Ci0gICAgdmFyIGl0ID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQsIGZhbHNlKTsKKyAgICB2
YXIgaXQgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwsIGZhbHNlKTsKIAogICAgIHZhciBuID0gaXQubmV4dE5vZGUoKTsKICAg
ICB3aGlsZShuKSB7CkBAIC0yOCw0ICsyOCw0IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiA8cD5BIGNy
YXNoIHdvdWxkIG9jY3VyIG9uIGl0ZXJhdGlvbiBvdmVyIGEgbm9kZSBjb250YWluaW5nIHN1Y2gg
YSBydW4uICBOb2RlSXRlcmF0b3JzLCB0aGUgaW5uZXJUZXh0IHByb3BlcnR5LCBhbmQgaG92ZXJp
bmcgb3ZlciBhIGxpbmsgYWxsIHVzZSBpdGVyYXRpb24uPC9wPgogPHA+VGhpcyB0ZXN0cyBpdGVy
YXRpb24gdXNpbmcgYm90aCB0aGUgaW5uZXJUZXh0IHByb3BlcnR5IGFuZCBOb2RlSXRlcmF0b3Jz
LiAgSXQgaXMgc3VjY2Vzc2Z1bCBpZiBpdCBkb2Vzbid0IGNyYXNoIFNhZmFyaS48L3A+CiA8aHI+
Ci08YSBocmVmPSIjIiBpZD0ibm9kZSI+aGVsbG88L2E+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8YSBocmVmPSIjIiBpZD0ibm9kZSI+aGVsbG88L2E+PC9ib2R5
PjwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDYwNzBlMC4uZTM0YzYyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTExNjEsNyArMTE2MSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU05hdmlnYXRvckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
Ci0gICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRv
ckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVPclN0cmluZy5jcHAKQEAgLTE0MzYs
OCArMTQzNSw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vTmFtZU5vZGVMaXN0LmNw
cAogICAgIGRvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcAogICAgIGRvbS9OYW1lZE5vZGVNYXAu
Y3BwCisgICAgZG9tL05hdGl2ZU5vZGVGaWx0ZXIuY3BwCiAgICAgZG9tL05vZGUuY3BwCi0gICAg
ZG9tL05vZGVGaWx0ZXIuY3BwCiAgICAgZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCiAgICAg
ZG9tL05vZGVJdGVyYXRvci5jcHAKICAgICBkb20vTm9kZU9yU3RyaW5nLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggMDUwOTY0Zi4u
Yjc2MmQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCkBAIC0xNDU1NywyMCArMTQ1NTcsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGRvbVxOb2RlRmlsdGVyLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTg0NzksMjAgKzE4
NDY1LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5jcHAiPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMjI0OTcsNyAr
MjI0NjksNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNNdXRh
dGlvbkNhbGxiYWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xKU05vZGVDdXN0b20uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXEpTTm9kZU9yU3RyaW5nLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJHbG9iYWxTY29wZUJhc2Uu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFj
dGlvbi5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDhjNDgxNzMuLmUxZjllYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKQEAgLTQ0MDQsOSArNDQwNCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVDdXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRp
bmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiPgotICAgICAgPEZpbHRlcj5iaW5kaW5n
c1xqczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJp
bmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMTQ5OCw5ICsxMTQ5NSw2
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20u
aCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25k
aXRpb24uaCI+Ci0gICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Ci0gICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggM2JiNGU3My4uOGUyNDQwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY4NCw2ICsyNjg0
LDcgQEAKIAkJODMwMDMwRjUxQjdEMzNCNTAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29s
bGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzAwMzBGMzFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9u
LmNwcCAqLzsgfTsKIAkJODMwMDMwRjYxQjdEMzNCNTAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRI
VE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODMwMDMwRjQxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVj
dGlvbi5oICovOyB9OwogCQk4MzAwMzBGODFCN0QzQjc4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENv
bGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzMDAzMEY3MUI3RDM5ODgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovOyB9
OworCQk4MzA2RUZGMTFCOEJDRUE1MDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzA2RUZGMDFCOEJD
RTdDMDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgKi87IH07CiAJCTgzMkI4NDM0MTlE
OEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1NSAv
KiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCAqLzsgfTsKIAkJODMyQjg0MzYxOUQ4RTU3NDAwQjI2
MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlLmNwcCAqLzsgfTsKIAkJODM0OEJGQUIxQjg1NzI5ODAwOTEyRjM2IC8q
IENsYXNzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzQ4QkZBOTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKQEAgLTI2OTcsNiArMjY5OCw3IEBACiAJCTgzODZBOTcwMTlGNjFFNEYwMEUxRUM0
QSAvKiBTdHlsZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM4NkE5NkUxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5jcHAg
Ki87IH07CiAJCTgzOUFBRkVDMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQTFB
MEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwICovOyB9OwogCQk4MzlBQUZFRDFB
MEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1M
V0JSRWxlbWVudC5oICovOyB9OworCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyogTmF0aXZl
Tm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLzsgfTsK
IAkJODNCOTY4N0IxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCOTY4NzkxOUY4
QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oICovOyB9OwogCQk4M0MwNUE1
QTFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MwNUE1ODFB
Njg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAgKi87
IH07CiAJCTgzQzA1QTVCMUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5k
RnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0MwNUE1OTFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0
aW9ucy5oICovOyB9OwpAQCAtMjcxOCw2ICsyNzIwLDcgQEAKIAkJODNDMUQ0MzQxNzhENUFCNTAw
MTQxRTY4IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjIxNzhENUFCNDAwMTQxRTY4IC8q
IFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oICovOyB9OwogCQk4M0MxRDQzNTE3OEQ1QUI1
MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjMxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1Bh
dGhTZWdNb3ZldG9BYnMuaCAqLzsgfTsKIAkJODNDMUQ0MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNW
R1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzQzFENDI0MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVs
LmggKi87IH07CisJCTgzRjEyMDZCMUI4QzEwNDcwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNG
MTIwNkExQjhDMTAzNjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi87IH07CiAJ
CTg0MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAw
MTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IH07CiAJCTg0MTlEMkE4MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8q
IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHAgKi87IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBT
VkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTI5MDksNyArMjkxMiw2IEBACiAJ
CTg1NDJBNzk4MEFFNUM5NDMwMERGNThERiAvKiBKU1NWR051bWJlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGMzBBREU2MTIyMDA0Q0JB
MTEgLyogSlNTVkdOdW1iZXIuY3BwICovOyB9OwogCQk4NTQyQTc5OTBBRTVDOTQ0MDBERjU4REYg
LyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0Vs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5oICovOyB9OwogCQk4NTQyQTc5QTBBRTVDOTQ0MDBERjU4REYg
LyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3NEQxRjEwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZH
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLzsgfTsKLQkJODU0RkU3MzAwQTIyOTdCRTAwNThE
N0FEIC8qIE5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU0RkU3MjYwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwICov
OyB9OwogCQk4NTRGRTczMTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MjcwQTIyOTdCRTAw
NThEN0FEIC8qIE5vZGVGaWx0ZXIuaCAqLzsgfTsKIAkJODU0RkU3MzIwQTIyOTdCRTAwNThEN0FE
IC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJD
b25kaXRpb24uY3BwICovOyB9OwogCQk4NTRGRTczMzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZp
bHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU0RkU3MjkwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCAq
LzsgfTsKQEAgLTU0ODgsOSArNTQ5MCw2IEBACiAJCUJDQjE2QzI4MDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRYU0xTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVT
aGVldC5oICovOyB9OwogCQlCQ0IxNkMyOTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAq
LzsgfTsKIAkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkMx
MTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0I3NzM2MTBDMTc4NTNEMDAx
MzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwICovOyB9OwotCQlCQ0I3NzM2MjBDMTc4NTNEMDAxMzJCQTQg
LyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVy
Q29uZGl0aW9uLmggKi87IH07Ci0JCUJDQjc3MzYzMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVG
aWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNCNzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAg
Ki87IH07CiAJCUJDQjkyRDRGMTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjkyRDRFMTI5MzU1
MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0JCOEFCOTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50
ZXJ2YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QkI4QUI1MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQkI4QUJBMTNGMUFGQjAwMDczNERG
MCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAw
NTMsNiArMTAwNTIsNyBAQAogCQk4MzAwMzBGMzFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzMDAzMEY0MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENv
bGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJpY0NhY2hl
ZEhUTUxDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMDAzMEY3
MUI3RDM5ODgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyogTmF0aXZlTm9kZUZp
bHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXRpdmVOb2Rl
RmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyQjg0MzMxOUQ4RTU1
MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlRWxlbWVudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODMyQjg0MzUxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRl
RWxlbWVudEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzQ4QkZBOTFC
ODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENsYXNzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMDA5MCw2ICsxMDA5MCw4IEBACiAJCTgzQzFENDI0MTc4RDVBQjQwMDE0
MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1BhdGhTZWdNb3ZldG9SZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODNEMjZEM0MxQUZEQ0M1MDAwMUIzODczIC8qIENoaWxkTm9kZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hpbGRO
b2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEMjZEM0QxQUZEQ0M1MDAw
MUIzODczIC8qIFBhcmVudE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4M0U5NTlFMTFCOEJDMjJCMDA0RDkzODUgLyogTmF0aXZlTm9k
ZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVOb2RlRmls
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRjEyMDZBMUI4QzEwMzYwMEQ3
NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4RiAvKiBT
VkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFt
QnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0
cmVhbUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjY1LDcgKzEw
MjY3LDYgQEAKIAkJODU0MDc1NjYwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MT3B0aW9uRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2NzBBRDZDQkY5MDA2
MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1NDA3NTY4MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9u
RWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01I
VE1MT3B0aW9uRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlRmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODU0RkU3MjcwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVGaWx0ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0
ZXJDb25kaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTRG
RTcyOTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTMwOTUsOSArMTMwOTYsNiBAQAogCQlCQ0IxNkMwRjA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FjaGVkWFNMU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBh
dGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OwogCQlC
Q0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDQjc3MzVGMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQg
LyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU05vZGVGaWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0I5MkQ0RTEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRCYXNlbGluZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9ESW50ZXJ2YWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCQjhBQjYxM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVy
dmFsVHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQT0RJbnRlcnZhbFRy
ZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMzkxLDYgKzIxMzg5LDcgQEAK
IAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi8s
CiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuaCAqLywK
IAkJCQk2NUUwRTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFwcGVyLmggKi8sCisJCQkJ
ODNGMTIwNkExQjhDMTAzNjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8sCiAJ
CQkJN0M5MUEzOEQxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9kZU9yU3RyaW5nLmNwcCAqLywKIAkJ
CQk3QzkxQTM4RTFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcuaCAqLywKIAkJCQlG
M0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICovLApAQCAtMjE1
NzQsNyArMjE1NzMsNiBAQAogCQkJCTA3Mzc5NEU3MTlFRTMzNUMwMEU1QTA0NSAvKiBKU05hdmln
YXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9k
ZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkM5NDM5QzIxMTZDRjQ5NDAwNDhDNzUwIC8qIEpTTm9kZUN1
c3RvbS5oICovLAotCQkJCUJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJD
dXN0b20uY3BwICovLAogCQkJCTFBNzUwREQzMEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVy
YXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjEwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9k
ZUxpc3RDdXN0b20uY3BwICovLAogCQkJCUFEMjBCMThDMThFOUQyMTYwMDVBODA4MyAvKiBKU05v
ZGVMaXN0Q3VzdG9tLmggKi8sCkBAIC0yMTg5NSw4ICsyMTg5Myw2IEBACiAJCQkJOTNCNzBENEUw
OUVCMEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5oICovLAogCQkJCTkzNUY0NTQwMEY3
QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmNwcCAqLywKIAkJCQk5MzVGNDU0
MTBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5oICovLAotCQkJCUJDQjc3
MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovLAotCQkJ
CUJDQjc3MzVGMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLywK
IAkJCSk7CiAJCQluYW1lID0gIkNhbGxiYWNrIE9iamVjdHMiOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTIzNDA3LDEwICsyMzQwMywxMSBAQAogCQkJCTg1QUNBOUY5MEE5QjYzMTAw
MDY3MUU5MCAvKiBOYW1lZE5vZGVNYXAuaWRsICovLAogCQkJCUE4MTg3MjE5MDk3N0QzQzAwMDU4
MjZEOSAvKiBOYW1lTm9kZUxpc3QuY3BwICovLAogCQkJCUE4MTg3MjEzMDk3N0QzQzAwMDU4MjZE
OSAvKiBOYW1lTm9kZUxpc3QuaCAqLywKKwkJCQk4MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyog
TmF0aXZlTm9kZUZpbHRlci5jcHAgKi8sCisJCQkJODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8q
IE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLywKIAkJCQlBOEM0QTdFRTA5RDU2MzI3MDAwM0FDOEQgLyog
Tm9kZS5jcHAgKi8sCiAJCQkJMTQxMTVCNTEwOUY4NEI3MTAwQ0E0RkMxIC8qIE5vZGUuaCAqLywK
IAkJCQkxNERDMEQwQjA5RkVDRkE0MDA3QjAyMzUgLyogTm9kZS5pZGwgKi8sCi0JCQkJODU0RkU3
MjYwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwICovLAogCQkJCTg1NEZFNzI3MEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi8sCiAJCQkJMTQxMTVBRjkwOUY4NDdENjAw
Q0E0RkMxIC8qIE5vZGVGaWx0ZXIuaWRsICovLAogCQkJCTg1NEZFNzI4MEEyMjk3QkUwMDU4RDdB
RCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLywKQEAgLTI0NzcyLDYgKzI0NzY5LDcgQEAK
IAkJCQk4NTNCRjREQjBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODU0MDc1MjYwQUQ2QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1QjQ5OEZCMEFEQjM0MDIwMDkyNUNCQiAvKiBET01Ob2RlSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAorCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVO
b2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTUyNkMzNzBBQjBBMTdFMDAwMzAyRUEg
LyogRE9NTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTBCNDFDMjBBRDlFN0U3
MDBBNkVENEYgLyogRE9NTm9kZUl0ZXJhdG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1QUNBQThEMEE5Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTY1NCw3ICsyNTY1Miw2IEBACiAJCQkJMDczQkUzNEQxN0QxN0U3QTAwMkJENDMxIC8q
IEpTTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzk0MzlDMzExNkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNDExNUI3MzA5Rjg0Q0Q2MDBDQTRGQzEgLyogSlNOb2RlRmlsdGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQ0I3NzM2MjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc1MEQ4RTBBOTBFNTIxMDAwRkYyMTUgLyog
SlNOb2RlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDlDMkMzMEMxN0I2OUUwMDVD
OTBBMiAvKiBKU05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDIwQjE4RDE4RTlEMjM3
MDA1QTgwODMgLyogSlNOb2RlTGlzdEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODkwNSw2
ICsyODkwMiw3IEBACiAJCQkJQkMyRUQ2QkMwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUU5RDEyQjAzRUUxMDAzQTU4M0EgLyogSlNB
dWRpb0J1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREY3RTlDMzEzQUMyMURCMDBBNTFF
QUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzRjEy
MDZCMUI4QzEwNDcwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkRBMTVFOUYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUFBQUYzMTJCMDJFRTQwMERDRjMzQiAvKiBK
U0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREEx
NUVBNTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTE4Miw2ICsyOTE4MCw3IEBACiAJCQkJNTExRUYyRDExN0YwRkRGMTAwRTRGQTE2IC8q
IEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRUYyQzgx
N0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCT3BlbkRCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTFFRjJDOTE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJSZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTgzMDZFRkYxMUI4QkNFQTUwMDMxRDAzMiAvKiBOYXRpdmVOb2RlRmlsdGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkNBMTdGMEZEMzUwMEU0RkExNiAvKiBKU0lE
QlRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkNCMTdGMEZEMzUwMEU0
RkExNiAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzZDNDlGMzBEN0RCQTA1MDBGRkE1NTggLyogSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjkyNDcsOCArMjkyNDYsNiBAQAogCQkJCTE0REMwRDM3MDlGRUQwNzMwMDdC
MDIzNSAvKiBKU05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyNjQwQzE3QUE2NzAw
NUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDExNUI3MjA5
Rjg0Q0Q2MDBDQTRGQzEgLyogSlNOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJD
Qjc3MzYxMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQkNCNzczNjMwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc1MEQ4RDBBOTBFNTIxMDAwRkYyMTUgLyog
SlNOb2RlSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NTBERDQwQTkwRTcyOTAw
MEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RDlDMkMyMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjk3ODUsNyArMjk3ODIsNiBAQAogCQkJCTI2NzcyNjAwMUE1QjNBRDkwMDNDMjRERCAvKiBO
RkFUb0RGQS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGNDNFMDBFNjc0MTEwMDAxQzEyODcg
LyogTmluZVBpZWNlSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MDAwOUQ1NjMy
NzAwMDNBQzhEIC8qIE5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODU0RkU3MzAwQTIyOTdC
RTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzIw
QTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODU0RkU3MzQwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVJdGVyYXRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0RkZDMDIyQjE2NDNCNzEwMDA0RTE2MzggLyogTm9kZVJhcmVEYXRhLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAppbmRleCBhZGZkOGMx
Li5lMGFiYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dP
YmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAtMjksNyArMjksNyBA
QCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6fkdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
KCkKICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChtX2ZpbHRlci5nZXQoKSksICJ3ZWJr
aXQtY29yZS1ub2RlLWZpbHRlciIsIG51bGxwdHIpOwogfQogCi1zaG9ydCBHT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqIG5vZGUpIGNv
bnN0CitzaG9ydCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlKiBu
b2RlKSBjb25zdAogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6
OkZJTFRFUl9SRUpFQ1Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggNjEyODAyNS4uNTM2
NmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
KGZpbHRlcikpOwogICAgIH0KIAotICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4
ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoTm9k
ZSopIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEdPYmplY3ROb2RlRmlsdGVyQ29u
ZGl0aW9uKFdlYktpdERPTU5vZGVGaWx0ZXIqIGZpbHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwCmluZGV4IDI1
OGZjNGEuLmQ4MGZlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
Z29iamVjdC9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1
ZGUgIldlYktpdERPTU5vZGVGaWx0ZXIuaCIKIAogI2luY2x1ZGUgIkdPYmplY3ROb2RlRmlsdGVy
Q29uZGl0aW9uLmgiCi0jaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorI2luY2x1ZGUgIk5hdGl2ZU5v
ZGVGaWx0ZXIuaCIKICNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
RE9NTm9kZUZpbHRlclByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNzIs
NyArNzIsNyBAQCBSZWZQdHI8V2ViQ29yZTo6Tm9kZUZpbHRlcj4gY29yZShXZWJLaXRET01Ob2Rl
RmlsdGVyKiBub2RlRmlsdGVyKQogCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNv
cmVOb2RlRmlsdGVyID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZUZpbHRlcio+KGdfb2JqZWN0
X2dldF9kYXRhKEdfT0JKRUNUKG5vZGVGaWx0ZXIpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0ZXIi
KSk7CiAgICAgaWYgKCFjb3JlTm9kZUZpbHRlcikgewotICAgICAgICBjb3JlTm9kZUZpbHRlciA9
IFdlYkNvcmU6Ok5vZGVGaWx0ZXI6OmNyZWF0ZShXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbjo6Y3JlYXRlKG5vZGVGaWx0ZXIpKTsKKyAgICAgICAgY29yZU5vZGVGaWx0ZXIgPSBX
ZWJDb3JlOjpOYXRpdmVOb2RlRmlsdGVyOjpjcmVhdGUoV2ViQ29yZTo6R09iamVjdE5vZGVGaWx0
ZXJDb25kaXRpb246OmNyZWF0ZShub2RlRmlsdGVyKSk7CiAgICAgICAgIG5vZGVGaWx0ZXJNYXAo
KS5hZGQoY29yZU5vZGVGaWx0ZXIuZ2V0KCksIG5vZGVGaWx0ZXIpOwogICAgICAgICBnX29iamVj
dF93ZWFrX3JlZihHX09CSkVDVChub2RlRmlsdGVyKSwgbm9kZUZpbHRlck9iamVjdERlc3Ryb3ll
ZENhbGxiYWNrLCBjb3JlTm9kZUZpbHRlci5nZXQoKSk7CiAgICAgICAgIGdfb2JqZWN0X3NldF9k
YXRhKEdfT0JKRUNUKG5vZGVGaWx0ZXIpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0ZXIiLCBjb3Jl
Tm9kZUZpbHRlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
aW5kaW5nc0FsbEluT25lLmNwcAppbmRleCAxYjVlOTViLi5iNWM1ZmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTExNCw3
ICsxMTQsNiBAQAogI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5j
bHVkZSAiSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5j
cHAiCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKICNpbmNsdWRlICJKU05v
ZGVGaWx0ZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU05vZGVMaXN0Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAppbmRleCBkOThlNjMyLi5jNDdlZjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlSW5zdHJ1bWVudGF0
aW9uLmgiCisjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKICAgICAKQEAgLTY0LDE0ICs2NSwxOCBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjpp
bnZva2VDYWxsYmFjayhKU1ZhbHVlIHRoaXNWYWx1ZSwgTWFya2VkQXJndW1lbnRCdWZmZXImCiAg
ICAgICAgIGNhbGxUeXBlID0gY2FsbGJhY2soKS0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEo
Y2FsbGJhY2soKSwgY2FsbERhdGEpOwogICAgIH0KICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5
cGVOb25lKSB7Ci0gICAgICAgIGlmIChtZXRob2QgPT0gQ2FsbGJhY2tUeXBlOjpGdW5jdGlvbikK
KyAgICAgICAgaWYgKG1ldGhvZCA9PSBDYWxsYmFja1R5cGU6OkZ1bmN0aW9uKSB7CisgICAgICAg
ICAgICByZXR1cm5lZEV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGNy
ZWF0ZVR5cGVFcnJvcihleGVjKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAg
ICAgICB9CiAKICAgICAgICAgQVNTRVJUKCFmdW5jdGlvbk5hbWUuaXNOdWxsKCkpOwogICAgICAg
ICBmdW5jdGlvbiA9IGNhbGxiYWNrKCktPmdldChleGVjLCBmdW5jdGlvbk5hbWUpOwogICAgICAg
ICBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlm
IChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxs
VHlwZU5vbmUpIHsKKyAgICAgICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gRXhjZXB0aW9uOjpj
cmVhdGUoZXhlYy0+dm0oKSwgY3JlYXRlVHlwZUVycm9yKGV4ZWMpKTsKICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBBU1NFUlQoIWZ1bmN0aW9u
LmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I0MTE5
YS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJD
b25kaXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIgotCi0jaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmgiCi0jaW5jbHVkZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmgi
Ci0jaW5jbHVkZSAiTm9kZUZpbHRlci5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLSNp
bmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5n
IG5hbWVzcGFjZSBKU0M7Ci0KLUpTTm9kZUZpbHRlckNvbmRpdGlvbjo6SlNOb2RlRmlsdGVyQ29u
ZGl0aW9uKFZNJiwgTm9kZUZpbHRlciogb3duZXIsIEpTVmFsdWUgZmlsdGVyKQotICAgIDogbV9m
aWx0ZXIoZmlsdGVyLmlzT2JqZWN0KCkgPyBXZWFrPEpTT2JqZWN0Pihqc0Nhc3Q8SlNPYmplY3Qq
PihmaWx0ZXIpLCAmbV93ZWFrT3duZXIsIG93bmVyKSA6IG51bGxwdHIpCi17Ci19Ci0KLXNob3J0
IEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Tm9kZSogZmlsdGVyTm9kZSkgY29uc3QKLXsKLSAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsK
LQotICAgIGlmICghbV9maWx0ZXIpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUOwotCi0gICAgLy8gRXhlYyBpcyBudWxsIGlmIHdlJ3ZlIGJlZW4gY2FsbGVkIGZyb20g
YSBub24tSmF2YVNjcmlwdCBsYW5ndWFnZSBhbmQgdGhlIGRvY3VtZW50Ci0gICAgLy8gaXMgbm8g
bG9uZ2VyIGFibGUgdG8gcnVuIEphdmFTY3JpcHQgKGUuZy4sIGl0J3MgZGlzY29ubmVjdGVkIGZy
b20gaXRzIGZyYW1lKS4KLSAgICBpZiAoIWV4ZWMpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVy
OjpGSUxURVJfUkVKRUNUOwotCi0gICAgSlNWYWx1ZSBmaWx0ZXIgPSBtX2ZpbHRlci5nZXQoKTsK
LSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxE
YXRhKGZpbHRlciwgY2FsbERhdGEpOwotICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUp
IHsKLSAgICAgICAgZmlsdGVyID0gZmlsdGVyLmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGV4ZWMsICJhY2NlcHROb2RlIikpOwotICAgICAgICBjYWxsVHlwZSA9IGdldENhbGxEYXRh
KGZpbHRlciwgY2FsbERhdGEpOwotICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25l
KSB7Ci0gICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcihleGVjLCAiTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHRO
b2RlIGZ1bmN0aW9uIikpOwotICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9S
RUpFQ1Q7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdz
OwotICAgIC8vIEZJWE1FOiBUaGUgbm9kZSBzaG91bGQgaGF2ZSB0aGUgcHJvdG90eXBlIGNoYWlu
IHRoYXQgY2FtZSBmcm9tIGl0cyBkb2N1bWVudCwgbm90Ci0gICAgLy8gd2hhdGV2ZXIgcHJvdG90
eXBlIGNoYWluIG1pZ2h0IGJlIG9uIHRoZSB3aW5kb3cgdGhpcyBmaWx0ZXIgY2FtZSBmcm9tLiBC
dWcgMjc2NjIKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9iYWxPYmpl
Y3RGb3JQcm90b3R5cGUoZXhlYyksIGZpbHRlck5vZGUpKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0g
ICAgSlNWYWx1ZSByZXN1bHQgPSBKU0M6OmNhbGwoZXhlYywgZmlsdGVyLCBjYWxsVHlwZSwgY2Fs
bERhdGEsIG1fZmlsdGVyLmdldCgpLCBhcmdzKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0gICAgaW50
IGludFJlc3VsdCA9IHJlc3VsdC50b0ludDMyKGV4ZWMpOwotICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0KLSAg
ICByZXR1cm4gaW50UmVzdWx0OwotfQotCi1ib29sIEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6V2Vh
a093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICByZXR1cm4g
dmlzaXRvci5jb250YWluc09wYXF1ZVJvb3QoY29udGV4dCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZp
bHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVy
Q29uZGl0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YTFiZTMuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykg
MjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCi0jZGVm
aW5lIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCi0KLSNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0
aW9uLmgiCi0jaW5jbHVkZSA8aGVhcC9XZWFrLmg+Ci0jaW5jbHVkZSA8aGVhcC9XZWFrSW5saW5l
cy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
SlNDSlNWYWx1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm9kZUZpbHRlcjsKLQotICAg
IGNsYXNzIEpTTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBOb2RlRmlsdGVyQ29uZGl0aW9u
IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8SlNOb2RlRmlsdGVyQ29uZGl0aW9u
PiBjcmVhdGUoSlNDOjpWTSYgdm0sIE5vZGVGaWx0ZXIqIG93bmVyLCBKU0M6OkpTVmFsdWUgZmls
dGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU05vZGVG
aWx0ZXJDb25kaXRpb24odm0sIG93bmVyLCBmaWx0ZXIpKTsKLSAgICAgICAgfQotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgSlNOb2RlRmlsdGVyQ29uZGl0aW9uKEpTQzo6Vk0mLCBOb2RlRmlsdGVy
KiBvd25lciwgSlNDOjpKU1ZhbHVlIGZpbHRlcik7Ci0KLSAgICAgICAgdmlydHVhbCBzaG9ydCBh
Y2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0OwotCi0gICAgICAgIGNsYXNz
IFdlYWtPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7Ci0gICAgICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOwotICAgICAgICB9Owot
ICAgICAgICBXZWFrT3duZXIgbV93ZWFrT3duZXI7Ci0gICAgICAgIG11dGFibGUgSlNDOjpXZWFr
PEpTQzo6SlNPYmplY3Q+IG1fZmlsdGVyOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAppbmRleCA3MDUzM2RiLi45
ZjMwMGNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0
ZXJDdXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0xMCw0MSArMTAsNTggQEAKICAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmgiCiAKLSNpbmNsdWRlICJKU05vZGVGaWx0
ZXJDb25kaXRpb24uaCIKKyNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgorI2luY2x1ZGUgIkpT
Tm9kZS5oIgorI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci12b2lkIEpTTm9kZUZpbHRlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90Vmlz
aXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJmltcGwoKSk7Ci19
Cit1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1SZWZQdHI8Tm9kZUZpbHRlcj4gSlNOb2RlRmlsdGVy
Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKKy8vIEZJWE1FOiBU
aGUgYmluZGluZ3MgZ2VuZXJhdG9yIGlzIGN1cnJlbnRseSBub3QgYWJsZSB0byBnZW5lcmF0ZQor
Ly8gY2FsbGJhY2sgZnVuY3Rpb24gY2FsbHMgaWYgdGhleSByZXR1cm4gc29tZXRoaW5nIGVsc2Ug
dGhhbiBhCisvLyBib29sZWFuLgordWludDE2X3QgSlNOb2RlRmlsdGVyOjphY2NlcHROb2RlKE5v
ZGUqIG5vZGUpCiB7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTTm9kZUZpbHRlcjo6aW5mbygp
KSkKLSAgICAgICAgcmV0dXJuICZKU0M6OmpzQ2FzdDxKU05vZGVGaWx0ZXIqPihhc09iamVjdCh2
YWx1ZSkpLT5pbXBsKCk7CisgICAgUmVmPEpTTm9kZUZpbHRlcj4gcHJvdGVjdCgqdGhpcyk7CisK
KyAgICBKU0xvY2tIb2xkZXIgbG9jayhtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT52bSgpKTsKKwor
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMo
KTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKHRvSlMo
ZXhlYywgbV9kYXRhLT5nbG9iYWxPYmplY3QoKSwgbm9kZSkpOworICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CisK
KyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIEpTVmFsdWUg
dmFsdWUgPSBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxs
YmFja1R5cGU6OkZ1bmN0aW9uT3JPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywg
ImFjY2VwdE5vZGUiKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIGlmIChyZXR1cm5lZEV4Y2Vw
dGlvbikgeworICAgICAgICAvLyBSZXRocm93IGV4Y2VwdGlvbi4KKyAgICAgICAgZXhlYy0+dm0o
KS5zZXRFeGNlcHRpb24ocmV0dXJuZWRFeGNlcHRpb24pOworCisgICAgICAgIHJldHVybiBOb2Rl
RmlsdGVyOjpGSUxURVJfUkVKRUNUOworICAgIH0KIAotICAgIGlmICghdmFsdWUuaXNPYmplY3Qo
KSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgdWludDE2X3QgcmVzdWx0ID0gdG9VSW50
MTYoZXhlYywgdmFsdWUsIE5vcm1hbENvbnZlcnNpb24pOworICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CiAKLSAg
ICBSZWZQdHI8Tm9kZUZpbHRlcj4gcmVzdWx0ID0gTm9kZUZpbHRlcjo6Y3JlYXRlKCk7Ci0gICAg
cmVzdWx0LT5zZXRDb25kaXRpb24oSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUodm0sIHJl
c3VsdC5nZXQoKSwgdmFsdWUpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgK
aW5kZXggM2JlMTU2My4uNmMzNzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtNDMsNyArNDMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmpD
Tm9kZUZpbHRlckNvbmRpdGlvbihmaWx0ZXIpKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1
YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKE5vZGUqKSBjb25zdDsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGlkIDxET01Ob2RlRmlsdGVyPiBmaWx0
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmls
dGVyQ29uZGl0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZp
bHRlckNvbmRpdGlvbi5tbQppbmRleCAyNGI1MTkyLi45ODRhMWFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0K
QEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zaG9ydCBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShFeGVjU3Rh
dGUqLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmFj
Y2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJl
dHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggZDY5MzFj
Ny4uOTgyNWZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC0zMDUsNyArMzA1LDcgQEAgc3ViIFNraXBG
dW5jdGlvbiB7CiAgICAgIyBzZXF1ZW5jZTxUPiBwYXJhbWV0ZXJzLCBiZWNhdXNlIHRoaXMgY29k
ZSBnZW5lcmF0b3IgZG9lc24ndCBrbm93IGhvdyB0byBhdXRvLWdlbmVyYXRlCiAgICAgIyBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyIG9yIHNlcXVlbmNlPFQ+LiBTa2lwIEV2ZW50TGlzdGVuZXJzIGJl
Y2F1c2UgdGhleSBhcmUgaGFuZGxlZCBlbHNld2hlcmUuCiAgICAgZm9yZWFjaCBteSAkcGFyYW0g
KEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzQ2FsbGJhY2tJbnRlcmZhY2UoJHBhcmFtLT50eXBlKSB8fAorICAgICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2UoJHBhcmFtLT50eXBlKSB8
fAogICAgICAgICAgICAgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2xhbXAifSB8fAog
ICAgICAgICAgICAgJHBhcmFtLT50eXBlIGVxICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiB8fAog
ICAgICAgICAgICAgJHBhcmFtLT50eXBlIGVxICJFdmVudExpc3RlbmVyIiB8fApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4
ODVjMGVjLi40ZjZlZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzQ3NSw2ICszNDc1LDggQEAgc3ViIEdlbmVyYXRl
Q2FsbGJhY2tIZWFkZXIKICAgICAjIERlc3RydWN0b3IKICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHZpcnR1YWwgfiRjbGFzc05hbWUoKTtcbiIpOwogCisgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBKU0NhbGxiYWNrRGF0YSogY2FsbGJhY2tEYXRhKCkgeyByZXR1cm4gbV9kYXRh
OyB9XG4iKTsKKwogICAgICMgQ29uc3RydWN0b3Igb2JqZWN0IGdldHRlci4KICAgICBpZiAoQHsk
aW50ZXJmYWNlLT5jb25zdGFudHN9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopO1xuIik7CkBAIC0zNTE2LDYgKzM1MTgsMTAgQEAgc3ViIEdlbmVyYXRlQ2Fs
bGJhY2tIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQ2FsbGJhY2tEYXRh
KiBtX2RhdGE7XG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtcblxuIik7CiAKKyAg
ICAjIHRvSlMoKS4KKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4i
KTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCAkaW50
ZXJmYWNlTmFtZSYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBs
KTsgfVxuXG4iKTsKKwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlXG5cbiIpOwogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9y
LT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UpOwogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRp
dGlvbmFsU3RyaW5nOwpAQCAtMzY4OSw2ICszNjk1LDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNr
SW1wbGVtZW50YXRpb24KICAgICAgICAgfQogICAgIH0KIAorICAgICMgdG9KUygpIGltcGxlbWVu
dGF0aW9uLgorICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5KU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGludGVyZmFjZU5hbWUqIGltcGwpXG4i
KTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmICghaW1wbCB8fCAhc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Jj4oKmltcGwpLmNh
bGxiYWNrRGF0YSgpKVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
biBqc051bGwoKTtcblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHN0
YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSY+KCppbXBsKS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2so
KTtcblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKKwogICAgIHB1c2goQGlt
cGxDb250ZW50LCAiXG59XG4iKTsKICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdl
bmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNlKTsKICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQppbmRleCBjNWI4Nzc5Li42MzVkMTMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMu
cG0KQEAgLTQyMCw2ICs0MjAsNyBAQCBzdWIgR2V0SW1wbENsYXNzTmFtZQogewogICAgIG15ICRu
YW1lID0gc2hpZnQ7CiAKKyAgICByZXR1cm4gIk5hdGl2ZU5vZGVGaWx0ZXIiIGlmICRuYW1lIGVx
ICJOb2RlRmlsdGVyIjsKICAgICByZXR1cm4gIkRPTVdpbmRvdyIgaWYgJG5hbWUgZXEgIkFic3Ry
YWN0VmlldyI7CiAgICAgcmV0dXJuICRuYW1lOwogfQpAQCAtNjkzLDcgKzY5NCw3IEBAIHN1YiBB
ZGRJbmNsdWRlc0ZvclR5cGUKICAgICB9CiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIi
KSB7Ci0gICAgICAgICRpbXBsSW5jbHVkZXN7Ik5vZGVGaWx0ZXIuaCJ9ID0gMTsKKyAgICAgICAg
JGltcGxJbmNsdWRlc3siTmF0aXZlTm9kZUZpbHRlci5oIn0gPSAxOwogICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJPYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oIn0gPSAxOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMTU1Nyw3ICsxNTU4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJG5lZWRzQ3VzdG9teyJOb2RlRmlsdGVy
In07CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIFJlZlB0cjxX
ZWJDb3JlOjpOb2RlRmlsdGVyPiBuYXRpdmVOb2RlRmlsdGVyO1xuIik7CiAgICAgICAgICAgICAg
ICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIGlmICgkcGFyYW1OYW1lKVxuIik7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICBuYXRpdmVOb2RlRmls
dGVyID0gV2ViQ29yZTo6Tm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVy
Q29uZGl0aW9uOjpjcmVhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6
TmF0aXZlTm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9u
OjpjcmVhdGUoJHBhcmFtTmFtZSkpO1xuIik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IHB1c2goQHBhcmFtZXRlck5hbWVzLCAiZWMiKSBpZiAkcmFpc2VzRXhjZXB0aW9uczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxs
YmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2FsbGJhY2suY3BwCmluZGV4IDRiZDU5N2QuLjBkODhlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNw
cApAQCAtMjM4LDYgKzIzOCwxNSBAQCBib29sIEpTVGVzdENhbGxiYWNrOjpjYWxsYmFja1JlcXVp
cmVzVGhpc1RvUGFzcyhpbnQgbG9uZ1BhcmFtLCBUZXN0Tm9kZSogdGVzdE5vZAogICAgIHJldHVy
biAhcmV0dXJuZWRFeGNlcHRpb247CiB9CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q2FsbGJhY2sqIGltcGwpCit7CisgICAgaWYg
KCFpbXBsIHx8ICFzdGF0aWNfY2FzdDxKU1Rlc3RDYWxsYmFjayY+KCppbXBsKS5jYWxsYmFja0Rh
dGEoKSkKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEpTVGVzdENhbGxiYWNrJj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpOworCit9
CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2su
aAppbmRleCBhMjJiNzBiLi5jZGQ3Mzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suaApAQCAtNDAsNiArNDAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAgICAgdmlydHVhbCB+SlNUZXN0Q2Fs
bGJhY2soKTsKKyAgICBKU0NhbGxiYWNrRGF0YSogY2FsbGJhY2tEYXRhKCkgeyByZXR1cm4gbV9k
YXRhOyB9CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogCiAgICAgLy8gRnVuY3Rpb25zCkBAIC01OCw2ICs1OSw5
IEBAIHByaXZhdGU6CiAgICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKIH07CiAKK0pTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q2FsbGJh
Y2sqKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdENhbGxiYWNrJiBpbXBsKSB7IHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVu
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrRnVuY3Rpb24uY3BwCmluZGV4IDBjNDVjM2YuLjg5N2M3YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTE4OSw2ICsxODksMTUgQEAgYm9vbCBKU1Rl
c3RDYWxsYmFja0Z1bmN0aW9uOjpjYWxsYmFja1JlcXVpcmVzVGhpc1RvUGFzcyhpbnQgbG9uZ1Bh
cmFtLCBUZXN0Tm9kZSoKICAgICByZXR1cm4gIXJldHVybmVkRXhjZXB0aW9uOwogfQogCitKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdENh
bGxiYWNrRnVuY3Rpb24qIGltcGwpCit7CisgICAgaWYgKCFpbXBsIHx8ICFzdGF0aWNfY2FzdDxK
U1Rlc3RDYWxsYmFja0Z1bmN0aW9uJj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKQorICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNUZXN0Q2FsbGJhY2tG
dW5jdGlvbiY+KCppbXBsKS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKKworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tG
dW5jdGlvbi5oCmluZGV4IDNmZTNmMjAuLjQxMmUyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNr
RnVuY3Rpb24uaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4g
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQog
CiAgICAgdmlydHVhbCB+SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbigpOworICAgIEpTQ2FsbGJhY2tE
YXRhKiBjYWxsYmFja0RhdGEoKSB7IHJldHVybiBtX2RhdGE7IH0KIAogICAgIC8vIEZ1bmN0aW9u
cwogICAgIHZpcnR1YWwgYm9vbCBjYWxsYmFja1dpdGhOb1BhcmFtKCk7CkBAIC01Nyw2ICs1OCw5
IEBAIHByaXZhdGU6CiAgICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKIH07CiAKK0pTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q2FsbGJh
Y2tGdW5jdGlvbiopOworaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q2FsbGJhY2tGdW5jdGlv
biYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJ
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDY3NDJmYjguLjU1Njg0NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtMTA4LDcgKzEwOCw2IEBACiAjaW5jbHVk
ZSAiTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmNwcCIK
ICNpbmNsdWRlICJOb2RlLmNwcCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmNwcCIKICNpbmNsdWRl
ICJOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKICNpbmNsdWRlICJOb2RlSXRlcmF0b3IuY3BwIgog
I2luY2x1ZGUgIk5vZGVPclN0cmluZy5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTmF0aXZlTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZp
bHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBhMzRjOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmNwcApA
QCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIk5hdGl2ZU5vZGVGaWx0ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitOYXRpdmVO
b2RlRmlsdGVyOjpOYXRpdmVOb2RlRmlsdGVyKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYm
IGNvbmRpdGlvbikKKyAgICA6IG1fY29uZGl0aW9uKGNvbmRpdGlvbikKK3sgfQorCit1aW50MTZf
dCBOYXRpdmVOb2RlRmlsdGVyOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpCit7CisgICAgLy8gY2Fz
dCB0byBzaG9ydCBzaWxlbmNlcyAiZW51bWVyYWwgYW5kIG5vbi1lbnVtZXJhbCB0eXBlcyBpbiBy
ZXR1cm4iIHdhcm5pbmcKKyAgICByZXR1cm4gbV9jb25kaXRpb24gPyBtX2NvbmRpdGlvbi0+YWNj
ZXB0Tm9kZShub2RlKSA6IHN0YXRpY19jYXN0PHVpbnQxNl90PihGSUxURVJfQUNDRVBUKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05hdGl2ZU5vZGVGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IwNzhlYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKQEAgLTAsMCAr
MSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmF0aXZlTm9kZUZpbHRlcl9oCisjZGVmaW5l
IE5hdGl2ZU5vZGVGaWx0ZXJfaAorCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorI2luY2x1ZGUg
Ik5vZGVGaWx0ZXJDb25kaXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBO
YXRpdmVOb2RlRmlsdGVyIGZpbmFsIDogcHVibGljIE5vZGVGaWx0ZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8TmF0aXZlTm9kZUZpbHRlcj4gY3JlYXRlKFJlZlB0cjxOb2RlRmlsdGVyQ29u
ZGl0aW9uPiYmIGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE5hdGl2ZU5vZGVGaWx0ZXIoV1RGOjptb3ZlKGNvbmRpdGlvbikpKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgUmVmPE5hdGl2ZU5vZGVGaWx0ZXI+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBOYXRpdmVOb2RlRmlsdGVyKCkpOworICAgIH0KKworICAgIHZpcnR1
YWwgdWludDE2X3QgYWNjZXB0Tm9kZShOb2RlKikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldENv
bmRpdGlvbihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4mJiBjb25kaXRpb24pIHsgQVNTRVJU
KCFtX2NvbmRpdGlvbik7IG1fY29uZGl0aW9uID0gY29uZGl0aW9uOyB9CisKK3ByaXZhdGU6Cisg
ICAgZXhwbGljaXQgTmF0aXZlTm9kZUZpbHRlcihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4m
Jik7CisKKyAgICBOYXRpdmVOb2RlRmlsdGVyKCkgeyB9CisKKyAgICBSZWZQdHI8Tm9kZUZpbHRl
ckNvbmRpdGlvbj4gbV9jb25kaXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBOYXRpdmVOb2RlRmlsdGVyX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGFiYzU0Li4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKLSAqIENvcHlyaWdodCAoQykgMjAwMCBGcmVkZXJpayBIb2xsamVuIChmcmVkZXJpay5ob2xs
amVuQGhpZy5ubykKLSAqIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3Qu
Y29tKQotICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21h
aWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVy
LmgiCi0KLSNpbmNsdWRlICJOb2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc2hvcnQg
Tm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUp
IGNvbnN0Ci17Ci0gICAgLy8gY2FzdCB0byBzaG9ydCBzaWxlbmNlcyAiZW51bWVyYWwgYW5kIG5v
bi1lbnVtZXJhbCB0eXBlcyBpbiByZXR1cm4iIHdhcm5pbmcKLSAgICByZXR1cm4gbV9jb25kaXRp
b24gPyBtX2NvbmRpdGlvbi0+YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZSkgOiBzdGF0aWNfY2FzdDxz
aG9ydD4oRklMVEVSX0FDQ0VQVCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUZpbHRlci5oCmluZGV4IDk2MTk3ZDkuLjI2Zjc2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVG
aWx0ZXIuaApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwMCBGcmVkZXJpayBI
b2xsamVuIChmcmVkZXJpay5ob2xsamVuQGhpZy5ubykKICAqIENvcHlyaWdodCAoQykgMjAwMSBQ
ZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBX
ZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4
LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwOCwgMjAwOSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDcwICsyNSw1MCBAQAogI2lmbmRlZiBOb2RlRmlsdGVy
X2gKICNkZWZpbmUgTm9kZUZpbHRlcl9oCiAKLSNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIK
LSNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ICAgIGNsYXNzIE5vZGVGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb2RlRmlsdGVyPiB7Ci0g
ICAgcHVibGljOgotICAgICAgICAvKioKLSAgICAgICAgICogVGhlIGZvbGxvd2luZyBjb25zdGFu
dHMgYXJlIHJldHVybmVkIGJ5IHRoZSBhY2NlcHROb2RlKCkKLSAgICAgICAgICogbWV0aG9kOgot
ICAgICAgICAgKi8KLSAgICAgICAgZW51bSB7Ci0gICAgICAgICAgICBGSUxURVJfQUNDRVBUID0g
MSwKLSAgICAgICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAyLAotICAgICAgICAgICAgRklMVEVSX1NL
SVAgICA9IDMKLSAgICAgICAgfTsKK2NsYXNzIE5vZGU7CiAKLSAgICAgICAgLyoqCi0gICAgICAg
ICAqIFRoZXNlIGFyZSB0aGUgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIHdoYXRUb1Nob3cgcGFy
YW1ldGVyLgotICAgICAgICAgKiBUaGV5IGFyZSB0aGUgc2FtZSBhcyB0aGUgc2V0IG9mIHBvc3Np
YmxlIHR5cGVzIGZvciBOb2RlLCBhbmQKLSAgICAgICAgICogdGhlaXIgdmFsdWVzIGFyZSBkZXJp
dmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgICogdG8g
dGhlIHZhbHVlIG9mIE5vZGVUeXBlIGZvciB0aGUgZXF1aXZhbGVudCBub2RlIHR5cGUuCi0gICAg
ICAgICAqLwotICAgICAgICBlbnVtIHsKLSAgICAgICAgICAgIFNIT1dfQUxMICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4RkZGRkZGRkYsCi0gICAgICAgICAgICBTSE9XX0VMRU1FTlQgICAgICAg
ICAgICAgICAgICAgPSAweDAwMDAwMDAxLAotICAgICAgICAgICAgU0hPV19BVFRSSUJVVEUgICAg
ICAgICAgICAgICAgID0gMHgwMDAwMDAwMiwKLSAgICAgICAgICAgIFNIT1dfVEVYVCAgICAgICAg
ICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCi0gICAgICAgICAgICBTSE9XX0NEQVRBX1NFQ1RJ
T04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAotICAgICAgICAgICAgU0hPV19FTlRJVFlfUkVG
RVJFTkNFICAgICAgICAgID0gMHgwMDAwMDAxMCwKLSAgICAgICAgICAgIFNIT1dfRU5USVRZICAg
ICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMjAsCi0gICAgICAgICAgICBTSE9XX1BST0NFU1NJ
TkdfSU5TVFJVQ1RJT04gICAgPSAweDAwMDAwMDQwLAotICAgICAgICAgICAgU0hPV19DT01NRU5U
ICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDA4MCwKLSAgICAgICAgICAgIFNIT1dfRE9DVU1F
TlQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAxMDAsCi0gICAgICAgICAgICBTSE9XX0RPQ1VN
RU5UX1RZUEUgICAgICAgICAgICAgPSAweDAwMDAwMjAwLAotICAgICAgICAgICAgU0hPV19ET0NV
TUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMCwKLSAgICAgICAgICAgIFNIT1dfTk9U
QVRJT04gICAgICAgICAgICAgICAgICA9IDB4MDAwMDA4MDAKLSAgICAgICAgfTsKK2NsYXNzIE5v
ZGVGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb2RlRmlsdGVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+Tm9kZUZpbHRlcigpIHsgfQorICAgIHZpcnR1YWwgdWludDE2X3QgYWNjZXB0Tm9k
ZShOb2RlKikgPSAwOwogCi0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUZpbHRlcj4gY3JlYXRlKFBh
c3NSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gY29uZGl0aW9uKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOb2RlRmlsdGVyKGNvbmRpdGlvbikpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgc3RhdGljIFJlZjxOb2RlRmlsdGVyPiBjcmVhdGUoKQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOb2RlRmlsdGVyKCkpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUq
KSBjb25zdDsKLQotICAgICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkg
YXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0aXZlLUMgYmluZGluZ3Mu
Ci0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxk
LCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAgIHNob3J0IGFjY2VwdE5v
ZGUoTm9kZSogbm9kZSkgY29uc3QgeyByZXR1cm4gYWNjZXB0Tm9kZShleGVjU3RhdGVGcm9tTm9k
ZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbm9kZSksIG5vZGUpOyB9Ci0gICAgICAgIAotICAg
ICAgICB2b2lkIHNldENvbmRpdGlvbihQYXNzUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+IGNv
bmRpdGlvbikgeyBBU1NFUlQoIW1fY29uZGl0aW9uKTsgbV9jb25kaXRpb24gPSBjb25kaXRpb247
IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxpY2l0IE5vZGVGaWx0ZXIoUGFzc1JlZlB0
cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBjb25kaXRpb24pIDogbV9jb25kaXRpb24oY29uZGl0aW9u
KSB7IH0KLSAgICAgICAgTm9kZUZpbHRlcigpIHt9CisgICAgLyoKKyAgICAgKiBUaGUgZm9sbG93
aW5nIGNvbnN0YW50cyBhcmUgcmV0dXJuZWQgYnkgdGhlIGFjY2VwdE5vZGUoKQorICAgICAqIG1l
dGhvZDoKKyAgICAgKi8KKyAgICBlbnVtIHsKKyAgICAgICAgRklMVEVSX0FDQ0VQVCA9IDEsCisg
ICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAyLAorICAgICAgICBGSUxURVJfU0tJUCAgID0gMworICAg
IH07CiAKLSAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+IG1fY29uZGl0aW9uOwor
ICAgIC8qCisgICAgICogVGhlc2UgYXJlIHRoZSBhdmFpbGFibGUgdmFsdWVzIGZvciB0aGUgd2hh
dFRvU2hvdyBwYXJhbWV0ZXIuCisgICAgICogVGhleSBhcmUgdGhlIHNhbWUgYXMgdGhlIHNldCBv
ZiBwb3NzaWJsZSB0eXBlcyBmb3IgTm9kZSwgYW5kCisgICAgICogdGhlaXIgdmFsdWVzIGFyZSBk
ZXJpdmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNvcnJlc3BvbmRpbmcKKyAgICAgKiB0byB0
aGUgdmFsdWUgb2YgTm9kZVR5cGUgZm9yIHRoZSBlcXVpdmFsZW50IG5vZGUgdHlwZS4KKyAgICAg
Ki8KKyAgICBlbnVtIHsKKyAgICAgICAgU0hPV19BTEwgICAgICAgICAgICAgICAgICAgICAgID0g
MHhGRkZGRkZGRiwKKyAgICAgICAgU0hPV19FTEVNRU5UICAgICAgICAgICAgICAgICAgID0gMHgw
MDAwMDAwMSwKKyAgICAgICAgU0hPV19BVFRSSUJVVEUgICAgICAgICAgICAgICAgID0gMHgwMDAw
MDAwMiwKKyAgICAgICAgU0hPV19URVhUICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAw
NCwKKyAgICAgICAgU0hPV19DREFUQV9TRUNUSU9OICAgICAgICAgICAgID0gMHgwMDAwMDAwOCwK
KyAgICAgICAgU0hPV19FTlRJVFlfUkVGRVJFTkNFICAgICAgICAgID0gMHgwMDAwMDAxMCwKKyAg
ICAgICAgU0hPV19FTlRJVFkgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAyMCwKKyAgICAg
ICAgU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICAgID0gMHgwMDAwMDA0MCwKKyAgICAgICAg
U0hPV19DT01NRU5UICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDA4MCwKKyAgICAgICAgU0hP
V19ET0NVTUVOVCAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU0hPV19E
T0NVTUVOVF9UWVBFICAgICAgICAgICAgID0gMHgwMDAwMDIwMCwKKyAgICAgICAgU0hPV19ET0NV
TUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMCwKKyAgICAgICAgU0hPV19OT1RBVElP
TiAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDgwMAogICAgIH07Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVy
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbAppbmRleCBkZWVlMGFiLi5m
YjczNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCkBAIC0yMCwxNiArMjAsMTIgQEAK
IAogLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIFsKLSAgICBKU0N1c3RvbU1hcmtGdW5j
dGlvbiwKLSAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAogICAgIE9iakNQcm90b2NvbCwKLSAg
ICBDUFBQdXJlSW50ZXJmYWNlLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1dIGlu
dGVyZmFjZSBOb2RlRmlsdGVyIHsKK10gY2FsbGJhY2sgaW50ZXJmYWNlIE5vZGVGaWx0ZXIgewog
ICAgIC8vIENvbnN0YW50cyByZXR1cm5lZCBieSBhY2NlcHROb2RlCi0gICAgY29uc3Qgc2hvcnQg
ICAgICAgICAgICAgICBGSUxURVJfQUNDRVBUICAgICAgICAgICAgICAgICAgPSAxOwotICAgIGNv
bnN0IHNob3J0ICAgICAgICAgICAgICAgRklMVEVSX1JFSkVDVCAgICAgICAgICAgICAgICAgID0g
MjsKLSAgICBjb25zdCBzaG9ydCAgICAgICAgICAgICAgIEZJTFRFUl9TS0lQICAgICAgICAgICAg
ICAgICAgICA9IDM7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklMVEVSX0FDQ0VQVCA9IDE7
CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklMVEVSX1JFSkVDVCA9IDI7CisgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgRklMVEVSX1NLSVAgPSAzOwogCiAgICAgLy8gQ29uc3RhbnRzIGZvciB3
aGF0VG9TaG93CiAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBTSE9XX0FMTCAgICAgICAg
ICAgICAgICAgICAgICAgPSAweEZGRkZGRkZGOwpAQCAtNDYsNyArNDIsMTAgQEAKICAgICBjb25z
dCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01FTlQgICAgICAgICA9IDB4
MDAwMDA0MDA7CiAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBTSE9XX05PVEFUSU9OICAg
ICAgICAgICAgICAgICAgPSAweDAwMDAwODAwOwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRl
XSBzaG9ydCBhY2NlcHROb2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsK
LQorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElW
RV9DCisgICAgc2hvcnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIE5v
ZGUgbik7CisjZWxzZQorICAgIFtDdXN0b21dIHVuc2lnbmVkIHNob3J0IGFjY2VwdE5vZGUoW0Rl
ZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBOb2RlIG4pOworI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5kZXggZTQ3OGQ5NC4uNzJjOWVl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXNob3J0IE5vZGVGaWx0ZXJDb25k
aXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3QKK3Nob3J0IE5v
ZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoTm9kZSopIGNvbnN0CiB7CiAgICAgcmV0dXJu
IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0
ZXJDb25kaXRpb24uaAppbmRleCA4YmEzOGY2Li4yYjlhYjY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIE5vZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxO
b2RlRmlsdGVyQ29uZGl0aW9uPiB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5Ob2Rl
RmlsdGVyQ29uZGl0aW9uKCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShK
U0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgc2hvcnQg
YWNjZXB0Tm9kZShOb2RlKikgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRB
Z2dyZWdhdGUoSlNDOjpTbG90VmlzaXRvciYpIHsgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVJdGVyYXRvci5jcHAKaW5kZXggZTg3MDFlZS4uYjU5OTc2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVJdGVyYXRvci5jcHAKQEAgLTg5LDExICs4OSwxMSBAQCBOb2RlSXRlcmF0b3I6On5Ob2RlSXRl
cmF0b3IoKQogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5kZXRhY2hOb2RlSXRlcmF0b3IodGhpcyk7
CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpuZXh0Tm9kZShKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRl
cmF0b3I6Om5leHROb2RlKEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX2RldGFjaGVk
KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0
OwpAQCAtMTA0LDkgKzEwNCw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpuZXh0
Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAgIC8v
IEluIG90aGVyIHdvcmRzLCBGSUxURVJfUkVKRUNUIGRvZXMgbm90IHBhc3Mgb3ZlciBkZXNjZW5k
YW50cwogICAgICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9kZS4gSGVuY2UsIEZJTFRFUl9SRUpF
Q1QgaXMgdGhlIHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAgICAgIFJlZlB0cjxOb2RlPiBwcm92
aXNpb25hbFJlc3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2RlOwotICAgICAgICBib29sIG5vZGVX
YXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUoc3RhdGUsIHByb3Zpc2lvbmFsUmVzdWx0LmdldCgpKSA9
PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUt
PmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJvb2wgbm9kZVdh
c0FjY2VwdGVkID0gYWNjZXB0Tm9kZShwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZp
bHRlcjo6RklMVEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5vZGVXYXNBY2NlcHRlZCkgewogICAg
ICAgICAgICAgbV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRhdGVOb2RlOwogICAgICAgICAgICAg
cmVzdWx0ID0gcHJvdmlzaW9uYWxSZXN1bHQucmVsZWFzZSgpOwpAQCAtMTE4LDExICsxMTYsMTEg
QEAgUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsK
IH0KIAotUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6OnByZXZpb3VzTm9kZShKU0M6OkV4
ZWNTdGF0ZSogc3RhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxOb2RlPiBOb2Rl
SXRlcmF0b3I6OnByZXZpb3VzTm9kZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9k
ZXRhY2hlZCkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgUmVmUHRyPE5vZGU+
IHJlc3VsdDsKQEAgLTEzMyw5ICsxMzEsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRv
cjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgRXhjZXB0aW9uQ29kZQogICAg
ICAgICAvLyBJbiBvdGhlciB3b3JkcywgRklMVEVSX1JFSkVDVCBkb2VzIG5vdCBwYXNzIG92ZXIg
ZGVzY2VuZGFudHMKICAgICAgICAgLy8gb2YgdGhlIHJlamVjdGVkIG5vZGUuIEhlbmNlLCBGSUxU
RVJfUkVKRUNUIGlzIHRoZSBzYW1lIGFzIEZJTFRFUl9TS0lQLgogICAgICAgICBSZWZQdHI8Tm9k
ZT4gcHJvdmlzaW9uYWxSZXN1bHQgPSBtX2NhbmRpZGF0ZU5vZGUubm9kZTsKLSAgICAgICAgYm9v
bCBub2RlV2FzQWNjZXB0ZWQgPSBhY2NlcHROb2RlKHN0YXRlLCBwcm92aXNpb25hbFJlc3VsdC5n
ZXQoKSkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLSAgICAgICAgaWYgKHN0YXRlICYm
IHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBib29s
IG5vZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUocHJvdmlzaW9uYWxSZXN1bHQuZ2V0KCkpID09
IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CiAgICAgICAgIGlmIChub2RlV2FzQWNjZXB0ZWQp
IHsKICAgICAgICAgICAgIG1fcmVmZXJlbmNlTm9kZSA9IG1fY2FuZGlkYXRlTm9kZTsKICAgICAg
ICAgICAgIHJlc3VsdCA9IHByb3Zpc2lvbmFsUmVzdWx0LnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlSXRlcmF0b3IuaAppbmRleCA1Zjg5ZTYyLi40NzEzOWIzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
SXRlcmF0b3IuaApAQCAtNDMsOCArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IH0KICAgICAgICAgfk5vZGVJdGVyYXRvcigpOwogCi0gICAgICAgIFBhc3NSZWZQdHI8Tm9kZT4g
bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAgIFBhc3NS
ZWZQdHI8Tm9kZT4gcHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiwgRXhjZXB0aW9uQ29kZSYp
OworICAgICAgICBQYXNzUmVmUHRyPE5vZGU+IG5leHROb2RlKEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICAgICAgUGFzc1JlZlB0cjxOb2RlPiBwcmV2aW91c05vZGUoRXhjZXB0aW9uQ29kZSYpOwogICAg
ICAgICB2b2lkIGRldGFjaCgpOwogCiAgICAgICAgIE5vZGUqIHJlZmVyZW5jZU5vZGUoKSBjb25z
dCB7IHJldHVybiBtX3JlZmVyZW5jZU5vZGUubm9kZS5nZXQoKTsgfQpAQCAtNTMsMTEgKzUzLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBiZWZvcmUgYW55IG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudCB0cmVlLgogICAg
ICAgICB2b2lkIG5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmKTsKIAotICAgICAgICAvLyBEbyBub3Qg
Y2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9y
dCB0aGUgT2JqZWN0aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0
aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlv
bnMuCi0gICAgICAgIFBhc3NSZWZQdHI8Tm9kZT4gbmV4dE5vZGUoRXhjZXB0aW9uQ29kZSYgZWMp
IHsgcmV0dXJuIG5leHROb2RlKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpLCByZWZlcmVuY2VOb2RlKCkpLCBlYyk7IH0KLSAgICAgICAgUGFzc1JlZlB0cjxOb2RlPiBw
cmV2aW91c05vZGUoRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIHByZXZpb3VzTm9kZShleGVj
U3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgcmVmZXJlbmNlTm9kZSgpKSwg
ZWMpOyB9Ci0KICAgICBwcml2YXRlOgogICAgICAgICBOb2RlSXRlcmF0b3IoUGFzc1JlZlB0cjxO
b2RlPiwgdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LCBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+LCBi
b29sIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUl0ZXJhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3Iu
aWRsCmluZGV4IDVjZjc4ZGYuLmE5OTUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlSXRlcmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3Iu
aWRsCkBAIC0zMCw4ICszMCw4IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcmVmZXJl
bmNlTm9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwb2ludGVyQmVmb3JlUmVm
ZXJlbmNlTm9kZTsKIAotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgUmFpc2VzRXhjZXB0aW9u
XSBOb2RlIG5leHROb2RlKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBSYWlzZXNFeGNl
cHRpb25dIE5vZGUgcHJldmlvdXNOb2RlKCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gTm9kZSBu
ZXh0Tm9kZSgpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGUgcHJldmlvdXNOb2RlKCk7CiAg
ICAgdm9pZCBkZXRhY2goKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmF2ZXJzYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKaW5kZXggMWMy
MjcwNS4uNzYzZjE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAgTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJv
b3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXQKIHsKIH0KIAotc2hvcnQgTm9kZUl0ZXJhdG9yQmFz
ZTo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0Citz
aG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAg
ICAgLy8gRklYTUU6IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBjaGVj
ayBtX2V4cGFuZEVudGl0eVJlZmVyZW5jZXMuCiAKQEAgLTQ4LDcgKzQ4LDcgQEAgc2hvcnQgTm9k
ZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5v
ZGUpIGNvbnN0CiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUDsKICAgICBp
ZiAoIW1fZmlsdGVyKQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsK
LSAgICByZXR1cm4gbV9maWx0ZXItPmFjY2VwdE5vZGUoc3RhdGUsIG5vZGUpOworICAgIHJldHVy
biBtX2ZpbHRlci0+YWNjZXB0Tm9kZShub2RlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyYXZlcnNhbC5oCmluZGV4IDE1ZjA5ZTIuLjZhY2ZiZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJhdmVyc2FsLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
cHJvdGVjdGVkOgogICAgICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4sIHVu
c2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzKTsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNT
dGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29u
c3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVXYWxrZXIuY3BwCmluZGV4IGRmMDM0YjEuLjA1ODM2MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVdhbGtlci5jcHAKQEAgLTU0LDI4ICs1NCwyNCBAQCBpbmxpbmUgTm9kZSogVHJlZVdhbGtl
cjo6c2V0Q3VycmVudChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgcmV0dXJuIG1fY3VycmVu
dC5nZXQoKTsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cGFyZW50Tm9kZShKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKCkKIHsKICAgICBSZWZQdHI8
Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICB3aGlsZSAobm9kZSAhPSByb290KCkpIHsKICAg
ICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlKQotICAg
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2Nl
cHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5v
ZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNl
KCkpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9k
ZSogVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBU
cmVlV2Fsa2VyOjpmaXJzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0g
bV9jdXJyZW50LT5maXJzdENoaWxkKCk7IG5vZGU7ICkgewotICAgICAgICBzaG9ydCBhY2NlcHRO
b2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChz
dGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAg
ICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAgY2FzZSBOb2Rl
RmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5vZGUu
cmVsZWFzZSgpOwpAQCAtOTYsMTkgKzkyLDE3IEBAIE5vZGUqIFRyZWVXYWxrZXI6OmZpcnN0Q2hp
bGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgQ29u
dGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgaWYg
KCFwYXJlbnQgfHwgcGFyZW50ID09IHJvb3QoKSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50KQotICAg
ICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICAgICAgbm9kZSA9IHBhcmVudDsKICAgICAgICAgfSB3aGlsZSAobm9kZSk7CiAgICAg
fQotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVlV2Fs
a2VyOjpsYXN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6
bGFzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50LT5s
YXN0Q2hpbGQoKTsgbm9kZTsgKSB7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBh
Y2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRl
LT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBzaG9ydCBh
Y2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgc3dpdGNo
IChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICBjYXNlIE5vZGVGaWx0ZXI6OkZJTFRF
Ul9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gbm9kZS5yZWxlYXNlKCk7CkBA
IC0xMjksMjMgKzEyMywyMSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgQ29udGFpbmVyTm9kZSog
cGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgaWYgKCFwYXJlbnQgfHwg
cGFyZW50ID09IHJvb3QoKSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50KQotICAgICAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAg
bm9kZSA9IHBhcmVudDsKICAgICAgICAgfSB3aGlsZSAobm9kZSk7CiAgICAgfQotICAgIHJldHVy
biAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91
c1NpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6cHJldmlv
dXNTaWJsaW5nKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICBp
ZiAobm9kZSA9PSByb290KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBzaWJsaW5n
ID0gbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7IHNpYmxpbmc7ICkgewotICAgICAgICAgICAgc2hv
cnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIHNpYmxpbmcuZ2V0KCkpOwot
ICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBh
Y2NlcHROb2RlKHNpYmxpbmcuZ2V0KCkpOwogICAgICAgICAgICAgc3dpdGNoIChhY2NlcHROb2Rl
UmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBU
OgogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBzaWJsaW5nLnJlbGVhc2UoKTsKQEAg
LTE2NCwyNSArMTU2LDIxIEBAIE5vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZyhKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgICAgIH0KICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVu
dE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlIHx8IG5vZGUgPT0gcm9vdCgpKQotICAgICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2Rl
KHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0
KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKCkKIHsKICAgICBSZWZQ
dHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICBpZiAobm9kZSA9PSByb290KCkpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB3aGlsZSAoMSkgewog
ICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBzaWJsaW5nID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsg
c2libGluZzsgKSB7Ci0gICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0
Tm9kZShzdGF0ZSwgc2libGluZy5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3Rh
dGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAg
ICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc2libGluZy5nZXQoKSk7CiAg
ICAgICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKICAgICAgICAgICAgICAgICBj
YXNlIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgICAgIG1fY3Vy
cmVudCA9IHNpYmxpbmcucmVsZWFzZSgpOwpAQCAtMjAxLDMxICsxODksMjUgQEAgTm9kZSogVHJl
ZVdhbGtlcjo6bmV4dFNpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICB9CiAg
ICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSB8fCBu
b2RlID09IHJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBzaG9ydCBhY2Nl
cHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlm
IChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVz
dWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1
bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKLSAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCi1Ob2RlKiBUcmVlV2Fsa2Vy
OjpwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6
cHJldmlvdXNOb2RlKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAg
ICB3aGlsZSAobm9kZSAhPSByb290KCkpIHsKICAgICAgICAgd2hpbGUgKE5vZGUqIHByZXZpb3Vz
U2libGluZyA9IG5vZGUtPnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgICAgICBub2RlID0g
cHJldmlvdXNTaWJsaW5nOwotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFj
Y2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0
YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAg
ICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVD
VCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHdoaWxlIChOb2RlKiBs
YXN0Q2hpbGQgPSBub2RlLT5sYXN0Q2hpbGQoKSkgewogICAgICAgICAgICAgICAgIG5vZGUgPSBs
YXN0Q2hpbGQ7Ci0gICAgICAgICAgICAgICAgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUo
c3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+
aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAg
ICAgICAgIGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAg
ICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpF
Q1QpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMjM1LDI5
ICsyMTcsMjUgQEAgTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAobm9kZSA9PSBy
b290KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAg
ICAgICAgIGlmICghcGFyZW50KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgbm9kZSA9IHBhcmVudDsKLSAgICAgICAgc2hvcnQgYWNj
ZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBp
ZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkp
OwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUND
RVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAg
IH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdh
bGtlcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6
bmV4dE5vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50OwogQ2hpbGRy
ZW46CiAgICAgd2hpbGUgKE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCkpIHsK
ICAgICAgICAgbm9kZSA9IGZpcnN0Q2hpbGQ7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1
bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYm
IHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAg
ICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkK
ICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAgICAgICAg
aWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkKQEAgLTI2
NSw5ICsyNDMsNyBAQCBDaGlsZHJlbjoKICAgICB9CiAgICAgd2hpbGUgKE5vZGUqIG5leHRTaWJs
aW5nID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUsIHJvb3QoKSkp
IHsKICAgICAgICAgbm9kZSA9IG5leHRTaWJsaW5nOwotICAgICAgICBzaG9ydCBhY2NlcHROb2Rl
UmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0
ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7
CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NF
UFQpCiAgICAgICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAgICAg
ICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9TS0lQKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlV2Fsa2VyLmgKaW5kZXggYzQ0MGMyOS4uNmEzZmU3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVdhbGtlci5oCkBAIC00NSwyMyArNDUsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBOb2RlKiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQog
ICAgICAgICB2b2lkIHNldEN1cnJlbnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4sIEV4Y2VwdGlvbkNv
ZGUmKTsKIAotICAgICAgICBOb2RlKiBwYXJlbnROb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAg
ICAgIE5vZGUqIGZpcnN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogbGFz
dENoaWxkKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIHByZXZpb3VzU2libGluZyhK
U0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBuZXh0U2libGluZyhKU0M6OkV4ZWNTdGF0
ZSopOwotICAgICAgICBOb2RlKiBwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAg
ICAgTm9kZSogbmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqKTsKLQotICAgICAgICAvLyBEbyBub3Qg
Y2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9y
dCB0aGUgT2JqZWN0aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0
aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlv
bnMuCi0gICAgICAgIE5vZGUqIHBhcmVudE5vZGUoKSB7IHJldHVybiBwYXJlbnROb2RlKGV4ZWNT
dGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsg
fQotICAgICAgICBOb2RlKiBmaXJzdENoaWxkKCkgeyByZXR1cm4gZmlyc3RDaGlsZChleGVjU3Rh
dGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0K
LSAgICAgICAgTm9kZSogbGFzdENoaWxkKCkgeyByZXR1cm4gbGFzdENoaWxkKGV4ZWNTdGF0ZUZy
b21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQotICAg
ICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoKSB7IHJldHVybiBwcmV2aW91c1NpYmxpbmcoZXhl
Y1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkp
OyB9Ci0gICAgICAgIE5vZGUqIG5leHRTaWJsaW5nKCkgeyByZXR1cm4gbmV4dFNpYmxpbmcoZXhl
Y1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkp
OyB9Ci0gICAgICAgIE5vZGUqIHByZXZpb3VzTm9kZSgpIHsgcmV0dXJuIHByZXZpb3VzTm9kZShl
eGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgp
KSk7IH0KLSAgICAgICAgTm9kZSogbmV4dE5vZGUoKSB7IHJldHVybiBuZXh0Tm9kZShleGVjU3Rh
dGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0K
KyAgICAgICAgTm9kZSogcGFyZW50Tm9kZSgpOworICAgICAgICBOb2RlKiBmaXJzdENoaWxkKCk7
CisgICAgICAgIE5vZGUqIGxhc3RDaGlsZCgpOworICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxp
bmcoKTsKKyAgICAgICAgTm9kZSogbmV4dFNpYmxpbmcoKTsKKyAgICAgICAgTm9kZSogcHJldmlv
dXNOb2RlKCk7CisgICAgICAgIE5vZGUqIG5leHROb2RlKCk7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hv
dywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAppbmRleCAyNjNhZWZhLi40ODA5ZWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVXYWxrZXIuaWRsCkBAIC0yOSwxMiArMjksMTIgQEAKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzOyAgICAgICAgCiAgICAgW1Nl
dHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIE5vZGUgY3VycmVudE5vZGU7CiAKLSAgICBb
Q2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcGFyZW50Tm9kZSgpOwotICAgIFtDYWxsV2l0aD1T
Y3JpcHRTdGF0ZV0gTm9kZSBmaXJzdENoaWxkKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRl
XSBOb2RlIGxhc3RDaGlsZCgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBwcmV2
aW91c1NpYmxpbmcoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgbmV4dFNpYmxp
bmcoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcHJldmlvdXNOb2RlKCk7Ci0g
ICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIG5leHROb2RlKCk7CisgICAgTm9kZSBwYXJl
bnROb2RlKCk7CisgICAgTm9kZSBmaXJzdENoaWxkKCk7CisgICAgTm9kZSBsYXN0Q2hpbGQoKTsK
KyAgICBOb2RlIHByZXZpb3VzU2libGluZygpOworICAgIE5vZGUgbmV4dFNpYmxpbmcoKTsKKyAg
ICBOb2RlIHByZXZpb3VzTm9kZSgpOworICAgIE5vZGUgbmV4dE5vZGUoKTsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260270</attachid>
            <date>2015-08-30 20:28:40 -0700</date>
            <delta_ts>2015-08-31 14:38:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148415-20150830202823.patch</filename>
            <type>text/plain</type>
            <size>544955</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk4ZjRiY2ViOTRiYjc1
MjcwYjJhNmM4ZmRiNmViNWRlNTFhMzllYi4uZGIwNjIyMGJhMzM2YzVjYWIxODlmYTIwM2E3ZTRi
NTEzMjljOWQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NSBAQAorMjAxNS0wOC0zMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGVGaWx0ZXIgc2hvdWxk
IGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOb2RlRmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSwg
aW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLAorICAgICAgICBhcyBwZXIgdGhlIERPTSBz
cGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVy
ZmFjZS1ub2RlZmlsdGVyCisKKyAgICAgICAgT25lIG1ham9yIGRpZmZlcmVuY2UgaXMgdGhhdCBU
cmVlV2Fsa2VyLmZpbHRlciAvIE5vZGVJdGVyYXRvciBpcworICAgICAgICBzdXBwb3NlZCB0byBi
ZSBhIEZ1bmN0aW9uIC8gT2JqZWN0IChwYXNzZWQgYnkgSmF2YVNjcmlwdCksIGJ1dCBpdCB3YXMg
YQorICAgICAgICBKU05vZGVGaWx0ZXIgd3JhcHBlciBpbiBXZWJLaXQuIEFsc28sIHdpbmRvdy5O
b2RlRmlsdGVyIGlzIG5vdCBzdXBwb3NlZAorICAgICAgICB0byBoYXZlIGEgcHJvdG90eXBlIHBy
b3BlcnR5LgorCisgICAgICAgIFRoaXMgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIEZpcmVm
b3guIEhvd2V2ZXIsIENocm9tZSBzdGlsbCBoYXMgaXRzCisgICAgICAgIG93biBOb2RlRmlsdGVy
IHdyYXBwZXIuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgIGh0dHAvdGVzdHMvdzNjL2RvbS90
cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLmh0bWwgKHJlYmFzZWxpbmVkKQorICAgICAg
ICBodHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbCAocmViYXNlbGlu
ZWQpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgIEFkZCAvIFJlbW92ZSBmaWxlcyB0byB0aGUgcHJvamVjdCBmaWxlcy4KKwor
ICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlRmls
dGVyQ29uZGl0aW9uLmg6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbjo6YWNjZXB0Tm9kZSk6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ05vZGVG
aWx0ZXJDb25kaXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVy
Q29uZGl0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246
OmFjY2VwdE5vZGUpOgorICAgICAgICBEcm9wIEV4ZWNTdGF0ZSBwYXJhbWV0ZXIgYXMgaXQgaXMg
bm90IHVzZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgVXNlIE5hdGl2ZU5vZGVG
aWx0ZXIgdHlwZSBpbnN0ZWFkIG9mIE5vZGVGaWx0ZXIuIE5vZGVGaWx0ZXIgaXMgbm93CisgICAg
ICAgIGEgcHVyZSBpbnRlcmZhY2Ugd2l0aCAyIHN1YmNsYXNzZXM6IE5hdGl2ZU5vZGVGaWx0ZXIg
Zm9yIHRoZSBuYXRpdmUKKyAgICAgICAgYmluZGluZ3MgYW5kIEpTTm9kZUZpbHRlciBmb3IgdGhl
IEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcDoKKyAgICAgICAgRHJvcCBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGFzIGl0IHdhcyBy
ZW1vdmVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAg
VGhyb3cgYSBUeXBlRXJyb3IgaWYgdGhlIGNhbGxiYWNrIG9iamVjdCBiZWluZyBpbnZva2VkIGlz
IG5vdCBjYWxsYWJsZQorICAgICAgICBhbmQgZG9lcyBub3QgaGF2ZSBhIGNhbGxhYmxlIHByb3Bl
cnR5IHdpdGggdGhlIGV4cGVjdGVkIG5hbWUuIFRoZXJlCisgICAgICAgIGFyZSBzZXZlcmFsIGxh
eW91dCB0ZXN0cyBjb3ZlcmluZyB0aGlzIChpbmNsdWRpbmcgdzNjIG9uZXMpLiBQcmV2aW91c2x5
LAorICAgICAgICBOb2RlRmlsdGVyIHdhcyBub3QgdXNpbmcgdGhlIGdlbmVyaWMgSlNDYWxsYmFj
a0RhdGEgYW5kIHRoZSBleGNlcHRpb24KKyAgICAgICAgdGhyb3dpbmcgd2FzIGluIEpTTm9kZUZp
bHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZSgpIGluc3RlYWQuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICBEcm9wIHRo
aXMgY2xhc3MuIEpTTm9kZUZpbHRlciAvIEpTTm9kZUZpbHRlckN1c3RvbSBub3cgYmFzaWNhbGx5
IHRha2UKKyAgICAgICAgY2FyZSBvZiBhbGwgdGhpcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXI6
OmFjY2VwdE5vZGUpOgorICAgICAgICBDb21wbGV0ZSByZXdyaXRlLiBUaGlzIGZpbGUgaXMgbm93
IG9ubHkgdXNlZCB0byBwcm92aWRlIGEgY3VzdG9tCisgICAgICAgIGltcGxlbWVudGF0aW9uIGZv
ciBKU05vZGVGaWx0ZXI6OmFjY2VwdE5vZGUoKS4gVGhlIGNvZGUgaXMgc2ltaWxhciB0bworICAg
ICAgICB3aGF0IHdhcyBwcmV2aW91c2x5IGRvbmUgaW4gSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjph
Y2NlcHROb2RlKCkuCisgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIHJlYXNvbnMgd2UgbmVlZCBj
dXN0b20gYmluZGluZ3MgaGVyZToKKyAgICAgICAgLSBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGRv
ZXMgbm90IGhhbmRsZSB5ZXQgY2FsbGJhY2sgZnVuY3Rpb25zCisgICAgICAgICAgcmV0dXJuaW5n
IGFueXRoaW5nIGVsc2UgdGhhbiBhIGJvb2xlYW4uCisgICAgICAgIC0gVGhlIHNwZWNpZmljYXRp
b24gY2xlYXJseSBzdGF0ZXMgdGhhdCB3ZSBuZWVkIHRvIHJldGhyb3cgZXhjZXB0aW9ucworICAg
ICAgICAgIHRocm93biBieSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uIEhvd2V2ZXIsIHRoZSBkZWZh
dWx0IGJlaGF2aW9yIG9mCisgICAgICAgICAgb3VyIGJpbmRpbmdzIGlzIHRvIHNpbXBseSByZXBv
cnQgdGhlIGV4Y2VwdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG06CisgICAgICAgIE9ubHkgc2tpcCBmdW5jdGlvbnMgdGhhdCBoYXZlIHBh
cmFtZXRlcnMgdGhhdCBhcmUgY2FsbGJhY2sgKmZ1bmN0aW9ucyosCisgICAgICAgIG5vdCBjYWxs
YmFjayAqaW50ZXJmYWNlcyouIENhbGxiYWNrIGludGVyZmFjZXMgYXJlIHZlcnkgc2ltaWxhciB0
bworICAgICAgICBpbnRlcmZhY2VzIGFuZCB0aGUgZ2VuZXJhdG9yIGlzIGFibGUgdG8gaGFuZGxl
IHRoZW0uIFRoaXMgY2hhbmdlIHdhcworICAgICAgICBuZWVkZWQgZm9yIHRoZSBHVEsgYmluZGlu
Z3MgZ2VuZXJhdG9yIHdvdWxkIG5vIGxvbmdlciBnZW5lcmF0ZSBiaW5kaW5ncworICAgICAgICBm
b3IgRG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKCkgLyBEb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKCksIG5vdworICAgICAgICB0aGF0IE5vZGVGaWx0ZXIgaXMgYSBjYWxsYmFjayBpbnRlcmZh
Y2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyKToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IEdlbmVyYXRlIGEgdG9KUygpIGZ1bmN0aW9uIGZvciBjYWxsYmFjayBpbnRlcmZhY2VzIGFzIHdl
bGwuIFByZXZpb3VzbHksCisgICAgICAgIHdlIHdvdWxkIG9ubHkgZ2VuZXJhdGUgdGhvc2UgZm9y
IHJlZ3VsYXIgaW50ZXJmYWNlcy4gVGhpcyBpcyBuZWVkZWQKKyAgICAgICAgYmVjYXVzZSBOb2Rl
RmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSBhbmQgaXQgaXMgZXhwb3NlZCB0bwor
ICAgICAgICBKUyB2aWEgTm9kZUl0ZXJhdG9yLmZpbHRlciAvIFRyZWVXYWxrZXIuZmlsdGVyLiBU
aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbWVyZWx5IHJldHVybnMgdGhlIGNhbGxiYWNrIG9i
amVjdCAvIGZ1bmN0aW9uIGluc2lkZSB0aGUgSlNDYWxiYWNrRGF0YQorICAgICAgICBzbyB0aGUg
SlMgZ2V0cyBiYWNrIHRoZSBvYmplY3QgLyBmdW5jdGlvbiBpdCBwYXNzZWQgaW4uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICBUd2Vh
ayB0aGUgT2JqQyBiaW5kaW5ncyBnZW5lcmF0b3IgdG8gdXNlIE5hdGl2ZU5vZGVGaWx0ZXIgY2xh
c3MgaW5zdGVhZAorICAgICAgICBvZiBOb2RlRmlsdGVyIGFzIE5vZGVGaWx0ZXIgaXMgbm93IGEg
cHVyZSBpbnRlcmZhY2VzLiBOYXRpdmUgYmluZGluZ3MKKyAgICAgICAgYXJlIG5vdyBleHBlY3Rl
ZCB0byB1c2UgdGhlIE5hdGl2ZU5vZGVGaWx0ZXIgc3ViY2xhc3MgaW5zdGVhZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmg6
CisgICAgICAgIFJlYmFzZWxpbmUgYmluZGluZ3MgdGVzdHMgbm93IHRoYXQgd2UgZ2VuZXJhdGUg
dG9KUygpIGZ1bmN0aW9ucyBmb3IKKyAgICAgICAgY2FsbGJhY2sgZnVuY3Rpb25zIC8gaW50ZXJm
YWNlcy4KKworICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgIERyb3AgTm9k
ZUZpbHRlci5jcHAgYXMgaXQgd2FzIHJlbW92ZWQuCisKKyAgICAgICAgKiBkb20vTmF0aXZlTm9k
ZUZpbHRlci5jcHA6IEFkZGVkLgorICAgICAgICAqIGRvbS9OYXRpdmVOb2RlRmlsdGVyLmg6IEFk
ZGVkLgorICAgICAgICBJbnRyb2R1Y2UgbmV3IE5hdGl2ZU5vZGVGaWx0ZXIgY2xhc3Mgd2hpY2gg
c3ViY2xhc3NlcyB0aGUgTm9kZUZpbHRlcgorICAgICAgICBpbnRlcmZhY2UgYW5kIGlzIHVzZWQg
YnkgbmF0aXZlIGJpbmRpbmdzLiBJdHMgYWNjZXB0KCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
dXNlcyBOb2RlRmlsdGVyQ29uZGl0aW9uIG9iamVjdCBpbnRlcm5hbGx5IHRvIGZpbHRlciB0aGUg
bm9kZXMgaW5zdGVhZAorICAgICAgICBvZiBhIEpTIGNhbGxiYWNrLgorCisgICAgICAgICogZG9t
L05vZGVGaWx0ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyLmg6Cisg
ICAgICAgIE1ha2UgTm9kZUZpbHRlciBhIHB1cmUgaW50ZXJmYWNlLiBJdHMgcHJldmlvdXMgY29k
ZSBpcyBub3cgZWl0aGVyIGluCisgICAgICAgIE5hdGl2ZU5vZGVGaWx0ZXIgb2YgSlNOb2RlRmls
dGVyLgorCisgICAgICAgICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICBNYWtlIE5vZGVG
aWx0ZXIgYSBjYWxsYmFjayBpbnRlcmZhY2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNl
LAorICAgICAgICBhcyBwZXIgdGhlIERPTSBzcGVjaWZpY2F0aW9uLiBBbHNvIGhhdmUgaXRzIGFj
Y2VwdCgpIG9wZXJhdGlvbiByZXR1cm4KKyAgICAgICAgYW4gdW5zaWduZWQgc2hvcnQgaW5zdGVh
ZCBvZiBhIHNob3J0IHRvIG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uLgorICAgICAgICBUaGUgT2Jq
QyB2ZXJzaW9uIHN0aWxsIHJldHVybnMgYSBzaG9ydCB0aG91Z2ggZm9yIGJhY2t3YXJkCisgICAg
ICAgIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oOgorCisgICAgICAgICogZG9tL05v
ZGVJdGVyYXRvci5jcHA6CisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5oOgorICAgICAgICAq
IGRvbS9Ob2RlSXRlcmF0b3IuaWRsOgorICAgICAgICAqIGRvbS9UcmF2ZXJzYWwuY3BwOgorICAg
ICAgICAqIGRvbS9UcmF2ZXJzYWwuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5jcHA6Cisg
ICAgICAgICogZG9tL1RyZWVXYWxrZXIuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6
CisgICAgICAgIFN0b3AgcGFzc2luZyBFeGVjU3RhdGUgdG8gVHJlZVdhbGtlciAvIE5vZGVJdGVy
YXRvciBmdW5jdGlvbnMuIEl0IG5vCisgICAgICAgIGxvbmdlciBzZWVtcyB0byBiZSBuZWVkZWQg
YXMgd2Ugbm93IHVzZSB0aGUgSlNDYWxsYmFja0RhdGEgYWJzdHJhY3Rpb24KKyAgICAgICAgZm9y
IGludm9raW5nIEpTLgorCiAyMDE1LTA4LTI5ICBKZXNzaWUgQmVybGluICA8YmVybGluQGFwcGxl
LmNvbT4KIAogICAgICAgICBFbCBDYXBpdGFuIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggNDYwNzBlMDMxZjQ2ZDc1ZDAxNTU1MzQyZDFmZjViZTdkYmQ4ZDEyOS4uZTM0YzYyZWJi
MWE2ZThhYzM3Y2QxMGM4MGI3YjUwNmU4OWVlNzA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTExNjEsNyArMTE2MSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9K
U05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3Rv
bS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMv
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRvckN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU05vZGVPclN0cmluZy5jcHAKQEAgLTE0MzYsOCArMTQzNSw4IEBAIHNldChX
ZWJDb3JlX1NPVVJDRVMKICAgICBkb20vTmFtZU5vZGVMaXN0LmNwcAogICAgIGRvbS9OYW1lZEZs
b3dDb2xsZWN0aW9uLmNwcAogICAgIGRvbS9OYW1lZE5vZGVNYXAuY3BwCisgICAgZG9tL05hdGl2
ZU5vZGVGaWx0ZXIuY3BwCiAgICAgZG9tL05vZGUuY3BwCi0gICAgZG9tL05vZGVGaWx0ZXIuY3Bw
CiAgICAgZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCiAgICAgZG9tL05vZGVJdGVyYXRvci5j
cHAKICAgICBkb20vTm9kZU9yU3RyaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggMDUwOTY0ZmE3NWJhOGY3ZDllZDVjMjdhNTli
OWIwZTQ0ZTA4Y2JkMC4uYjc2MmQ2ZWI4MTUyODFjMzkxYTZjZjBlNGM2OTM5MjBlYzZjZDAwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBA
IC0xNDU1NywyMCArMTQ1NTcsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRvbVxOb2RlRmlsdGVyLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxkb21cTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTg0NzksMjAgKzE4NDY1LDYgQEAK
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xK
U05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5jcHAiPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMjI0OTcsNyArMjI0NjksNiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxi
YWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVD
dXN0b20uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9k
ZU9yU3RyaW5nLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xK
U05vZGVGaWx0ZXJDb25kaXRpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJp
bmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjaGVkdWxlZEFjdGlvbi5oIiAv
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCmluZGV4IDhjNDgxNzMyZjhkNGIwMzgzMWRlMmU4MmFlMTc5ODg5YmNkODY3
MDMuLmUxZjllYjAxNTAwMDM4YWU5YmNkZGFkY2JiNmEzOTA2OTFmNThhMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKQEAgLTQ0MDQsOSArNDQwNCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5k
aW5nc1xqc1xKU05vZGVDdXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRp
bmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiPgotICAgICAgPEZpbHRlcj5iaW5kaW5n
c1xqczwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJp
bmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMTQ5OCw5ICsxMTQ5NSw2
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20u
aCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25k
aXRpb24uaCI+Ci0gICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Ci0gICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuaCI+CiAgICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggM2JiNGU3MzRmMGFjMmEyMzc2NTE1ZDVhOGJiOTg2NjNmZjdh
NmMzMy4uOGUyNDQwMDUzNmIzMzFlNzk2YTljYzJkNDRhOTllMjUwNDkyYjYzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY4
NCw2ICsyNjg0LDcgQEAKIAkJODMwMDMwRjUxQjdEMzNCNTAwRUQzQUFDIC8qIEdlbmVyaWNDYWNo
ZWRIVE1MQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzAwMzBGMzFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxD
b2xsZWN0aW9uLmNwcCAqLzsgfTsKIAkJODMwMDMwRjYxQjdEMzNCNTAwRUQzQUFDIC8qIEdlbmVy
aWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODMwMDMwRjQxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRI
VE1MQ29sbGVjdGlvbi5oICovOyB9OwogCQk4MzAwMzBGODFCN0QzQjc4MDBFRDNBQUMgLyogQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzMDAzMEY3MUI3RDM5ODgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlv
bi5oICovOyB9OworCQk4MzA2RUZGMTFCOEJDRUE1MDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzA2
RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgKi87IH07CiAJCTgz
MkI4NDM0MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDMzMTlEOEU1NTEw
MEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCAqLzsgfTsKIAkJODMyQjg0MzYxOUQ4
RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUg
LyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCAqLzsgfTsKIAkJODM0OEJGQUIxQjg1NzI5ODAw
OTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQ4QkZBOTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xs
ZWN0aW9uLmNwcCAqLzsgfTsKQEAgLTI2OTcsNiArMjY5OCw3IEBACiAJCTgzODZBOTcwMTlGNjFF
NEYwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM4NkE5NkUxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVp
bGRlci5jcHAgKi87IH07CiAJCTgzOUFBRkVDMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwICovOyB9OwogCQk4
MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5
OSAvKiBIVE1MV0JSRWxlbWVudC5oICovOyB9OworCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcg
LyogTmF0aXZlTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIu
aCAqLzsgfTsKIAkJODNCOTY4N0IxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNC
OTY4NzkxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oICovOyB9Owog
CQk4M0MwNUE1QTFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0
aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0MwNUE1ODFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9u
cy5jcHAgKi87IH07CiAJCTgzQzA1QTVCMUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4M0MwNUE1OTFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZEZ1bmN0aW9ucy5oICovOyB9OwpAQCAtMjcxOCw2ICsyNzIwLDcgQEAKIAkJODNDMUQ0MzQx
NzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjIxNzhENUFCNDAw
MTQxRTY4IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oICovOyB9OwogCQk4M0MxRDQz
NTE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjMxNzhENUFCNDAwMTQxRTY4
IC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaCAqLzsgfTsKIAkJODNDMUQ0MzYxNzhENUFCNTAwMTQx
RTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzFENDI0MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2Vn
TW92ZXRvUmVsLmggKi87IH07CisJCTgzRjEyMDZCMUI4QzEwNDcwMEQ3NUY2MyAvKiBKU05vZGVG
aWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNGMTIwNkExQjhDMTAzNjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAg
Ki87IH07CiAJCTg0MTlEMkE3MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQx
MjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IH07CiAJCTg0MTlEMkE4
MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTUxMjBEOTJEMDAw
MTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHAgKi87IH07CiAJCTg0MTlEMkE5
MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0
MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTI5MDksNyArMjkx
Miw2IEBACiAJCTg1NDJBNzk4MEFFNUM5NDMwMERGNThERiAvKiBKU1NWR051bWJlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGMzBBREU2
MTIyMDA0Q0JBMTEgLyogSlNTVkdOdW1iZXIuY3BwICovOyB9OwogCQk4NTQyQTc5OTBBRTVDOTQ0
MDBERjU4REYgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAv
KiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oICovOyB9OwogCQk4NTQyQTc5QTBBRTVDOTQ0
MDBERjU4REYgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3NEQxRjEwQURFNjEyMjAwNENCQTEx
IC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLzsgfTsKLQkJODU0RkU3MzAwQTIy
OTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MjYwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0
ZXIuY3BwICovOyB9OwogCQk4NTRGRTczMTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3Mjcw
QTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuaCAqLzsgfTsKIAkJODU0RkU3MzIwQTIyOTdC
RTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwICovOyB9OwogCQk4NTRGRTczMzBBMjI5N0JFMDA1OEQ3QUQg
LyogTm9kZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODU0RkU3MjkwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25k
aXRpb24uaCAqLzsgfTsKQEAgLTU0ODgsOSArNTQ5MCw2IEBACiAJCUJDQjE2QzI4MDk3OUMzQkQw
MDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVk
WFNMU3R5bGVTaGVldC5oICovOyB9OwogCQlCQ0IxNkMyOTA5NzlDM0JEMDA0Njc3NDEgLyogQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcCAqLzsgfTsKIAkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291
cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0I3NzM2MTBD
MTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzVFMEMxNzg1M0QwMDEzMkJB
NCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovOyB9OwotCQlCQ0I3NzM2MjBDMTc4NTNE
MDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQgLyogSlNO
b2RlRmlsdGVyQ29uZGl0aW9uLmggKi87IH07Ci0JCUJDQjc3MzYzMEMxNzg1M0QwMDEzMkJBNCAv
KiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNCNzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1
c3RvbS5jcHAgKi87IH07CiAJCUJDQjkyRDRGMTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxp
bmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjky
RDRFMTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0JCOEFCOTEzRjFBRkIwMDA3MzRERjAg
LyogUE9ESW50ZXJ2YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQkI4QUI1MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQkI4QUJBMTNGMUFG
QjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRl
cnZhbFRyZWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTAwNTMsNiArMTAwNTIsNyBAQAogCQk4MzAwMzBGMzFCN0QzM0E2MDBFRDNBQUMgLyog
R2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzMDAzMEY0MUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2Vu
ZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzMDAzMEY3MUI3RDM5ODgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyogTmF0
aXZlTm9kZUZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBO
YXRpdmVOb2RlRmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyQjg0
MzMxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlRWxlbWVudEJhc2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyQjg0MzUxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1h
dGVFbGVtZW50QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdBbmltYXRlRWxlbWVudEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzQ4QkZBOTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsYXNzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDA5MCw2ICsxMDA5MCw4IEBACiAJCTgzQzFENDI0MTc4
RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhTZWdNb3ZldG9SZWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODNEMjZEM0MxQUZEQ0M1MDAwMUIzODczIC8qIENoaWxkTm9kZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQ2hpbGROb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNEMjZEM0Qx
QUZEQ0M1MDAwMUIzODczIC8qIFBhcmVudE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBhcmVudE5vZGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0U5NTlFMTFCOEJDMjJCMDA0RDkzODUgLyog
TmF0aXZlTm9kZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRp
dmVOb2RlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRjEyMDZBMUI4
QzEwMzYwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRl
U3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhCeXRlU3Ry
ZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE1MTIwRDkyRDAwMDE0
MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhC
eXRlU3RyZWFtQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
MjY1LDcgKzEwMjY3LDYgQEAKIAkJODU0MDc1NjYwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxP
cHRpb25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1M
T3B0aW9uRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2NzBB
RDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NDA3NTY4MEFENkNCRjkwMDYyMEM1NyAvKiBET01I
VE1MT3B0aW9uRWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01IVE1MT3B0aW9uRWxlbWVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlRmlsdGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0RkU3MjcwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVG
aWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVGaWx0ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8q
IE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NTRGRTcyOTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMwOTUsOSArMTMwOTYsNiBAQAogCQlCQ0Ix
NkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkWFNMU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3Bw
OyB9OwogCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlTG9hZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJB
NCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQjc3MzVGMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25k
aXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNv
bmRpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0I3NzM2MDBDMTc4NTNE
MDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU05vZGVGaWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQ0I5MkQ0RTEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRCYXNlbGluZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50
ZXJ2YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9ESW50ZXJ2YWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCQjhBQjYxM0YxQUZCMDAwNzM0REYwIC8q
IFBPREludGVydmFsVHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQT0RJ
bnRlcnZhbFRyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMzkxLDYgKzIx
Mzg5LDcgQEAKIAkJCQlCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVs
bC5jcHAgKi8sCiAJCQkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hl
bGwuaCAqLywKIAkJCQk2NUUwRTk0MzExMzNDODlGMDBCNENCMTAgLyogSlNET01XcmFwcGVyLmgg
Ki8sCisJCQkJODNGMTIwNkExQjhDMTAzNjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5j
cHAgKi8sCiAJCQkJN0M5MUEzOEQxQjQ5OEFCRTAwM0Y5RUZBIC8qIEpTTm9kZU9yU3RyaW5nLmNw
cCAqLywKIAkJCQk3QzkxQTM4RTFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcuaCAq
LywKIAkJCQlGM0Q0NjE0NjExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwICov
LApAQCAtMjE1NzQsNyArMjE1NzMsNiBAQAogCQkJCTA3Mzc5NEU3MTlFRTMzNUMwMEU1QTA0NSAv
KiBKU05hdmlnYXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEy
IC8qIEpTTm9kZUN1c3RvbS5jcHAgKi8sCiAJCQkJQkM5NDM5QzIxMTZDRjQ5NDAwNDhDNzUwIC8q
IEpTTm9kZUN1c3RvbS5oICovLAotCQkJCUJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDdXN0b20uY3BwICovLAogCQkJCTFBNzUwREQzMEE5MEU3MjkwMDBGRjIxNSAvKiBK
U05vZGVJdGVyYXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjEwQzE3QUE2NzAwNUM5MEEy
IC8qIEpTTm9kZUxpc3RDdXN0b20uY3BwICovLAogCQkJCUFEMjBCMThDMThFOUQyMTYwMDVBODA4
MyAvKiBKU05vZGVMaXN0Q3VzdG9tLmggKi8sCkBAIC0yMTg5NSw4ICsyMTg5Myw2IEBACiAJCQkJ
OTNCNzBENEUwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5oICovLAogCQkJCTkz
NUY0NTQwMEY3QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmNwcCAqLywKIAkJ
CQk5MzVGNDU0MTBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5oICovLAot
CQkJCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3Bw
ICovLAotCQkJCUJDQjc3MzVGMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRp
b24uaCAqLywKIAkJCSk7CiAJCQluYW1lID0gIkNhbGxiYWNrIE9iamVjdHMiOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzNDA3LDEwICsyMzQwMywxMSBAQAogCQkJCTg1QUNBOUY5
MEE5QjYzMTAwMDY3MUU5MCAvKiBOYW1lZE5vZGVNYXAuaWRsICovLAogCQkJCUE4MTg3MjE5MDk3
N0QzQzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuY3BwICovLAogCQkJCUE4MTg3MjEzMDk3N0Qz
QzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuaCAqLywKKwkJCQk4MzA2RUZGMDFCOEJDRTdDMDAz
MUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgKi8sCisJCQkJODNFOTU5RTExQjhCQzIyQjAw
NEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLywKIAkJCQlBOEM0QTdFRTA5RDU2MzI3MDAw
M0FDOEQgLyogTm9kZS5jcHAgKi8sCiAJCQkJMTQxMTVCNTEwOUY4NEI3MTAwQ0E0RkMxIC8qIE5v
ZGUuaCAqLywKIAkJCQkxNERDMEQwQjA5RkVDRkE0MDA3QjAyMzUgLyogTm9kZS5pZGwgKi8sCi0J
CQkJODU0RkU3MjYwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwICovLAogCQkJCTg1
NEZFNzI3MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi8sCiAJCQkJMTQxMTVBRjkw
OUY4NDdENjAwQ0E0RkMxIC8qIE5vZGVGaWx0ZXIuaWRsICovLAogCQkJCTg1NEZFNzI4MEEyMjk3
QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLywKQEAgLTI0NzcyLDYgKzI0
NzY5LDcgQEAKIAkJCQk4NTNCRjREQjBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODU0MDc1MjYwQUQ2QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1QjQ5OEZCMEFEQjM0MDIwMDkyNUNCQiAvKiBET01Ob2Rl
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAv
KiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTUyNkMzNzBBQjBBMTdF
MDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTBCNDFD
MjBBRDlFN0U3MDBBNkVENEYgLyogRE9NTm9kZUl0ZXJhdG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg1QUNBQThEMEE5Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNTY1NCw3ICsyNTY1Miw2IEBACiAJCQkJMDczQkUzNEQxN0QxN0U3QTAw
MkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzk0MzlDMzExNkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDExNUI3MzA5Rjg0Q0Q2MDBDQTRGQzEgLyogSlNOb2RlRmlsdGVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0I3NzM2MjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc1MEQ4RTBBOTBFNTIxMDAw
RkYyMTUgLyogSlNOb2RlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDlDMkMzMEMx
N0I2OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDIwQjE4
RDE4RTlEMjM3MDA1QTgwODMgLyogSlNOb2RlTGlzdEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yODkwNSw2ICsyODkwMiw3IEBACiAJCQkJQkMyRUQ2QkMwQzZCRDJGMDAwOTIwQkZGIC8qIEpT
QXR0ckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUU5RDEyQjAzRUUxMDAzQTU4
M0EgLyogSlNBdWRpb0J1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREY3RTlDMzEzQUMy
MURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTgzRjEyMDZCMUI4QzEwNDcwMEQ3NUY2MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVFOUYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUFBQUYzMTJCMDJFRTQwMERD
RjMzQiAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGREExNUVBNTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yOTE4Miw2ICsyOTE4MCw3IEBACiAJCQkJNTExRUYyRDExN0YwRkRGMTAw
RTRGQTE2IC8qIEpTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTExRUYyQzgxN0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCT3BlbkRCUmVxdWVzdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTFFRjJDOTE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJSZXF1ZXN0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTgzMDZFRkYxMUI4QkNFQTUwMDMxRDAzMiAvKiBOYXRpdmVO
b2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkNBMTdGMEZEMzUwMEU0RkEx
NiAvKiBKU0lEQlRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkNCMTdG
MEZEMzUwMEU0RkExNiAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzZDNDlGMzBEN0RCQTA1MDBGRkE1NTggLyogSlNJbWFnZUNvbnN0cnVjdG9yLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjkyNDcsOCArMjkyNDYsNiBAQAogCQkJCTE0REMwRDM3MDlG
RUQwNzMwMDdCMDIzNSAvKiBKU05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyNjQw
QzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDExNUI3MjA5Rjg0Q0Q2MDBDQTRGQzEgLyogSlNOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUJDQjc3MzYxMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNCNzczNjMwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9k
ZUZpbHRlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc1MEQ4RDBBOTBFNTIxMDAw
RkYyMTUgLyogSlNOb2RlSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NTBERDQw
QTkwRTcyOTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRDlDMkMyMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjk3ODUsNyArMjk3ODIsNiBAQAogCQkJCTI2NzcyNjAwMUE1QjNBRDkwMDND
MjRERCAvKiBORkFUb0RGQS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGNDNFMDBFNjc0MTEw
MDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4
MDAwOUQ1NjMyNzAwMDNBQzhEIC8qIE5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODU0RkU3
MzAwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODU0RkU3MzIwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODU0RkU3MzQwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVJdGVyYXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0RkZDMDIyQjE2NDNCNzEwMDA0RTE2MzggLyogTm9kZVJh
cmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAppbmRl
eCBhZGZkOGMxODk4ZjM3NTVkNGY1OTcyZDkyMjdhZGNiNTk3ZDFkN2FmLi5lMGFiYjdjNjRlMWYw
NjQxNzllMDA5YjVmZDlkMzE3Y2Y3YWE5NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNw
cApAQCAtMjksNyArMjksNyBAQCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6fkdPYmplY3RO
b2RlRmlsdGVyQ29uZGl0aW9uKCkKICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChtX2Zp
bHRlci5nZXQoKSksICJ3ZWJraXQtY29yZS1ub2RlLWZpbHRlciIsIG51bGxwdHIpOwogfQogCi1z
aG9ydCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0
ZSosIE5vZGUqIG5vZGUpIGNvbnN0CitzaG9ydCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6
YWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAogewogICAgIGlmICghbm9kZSkKICAgICAgICAg
cmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgK
aW5kZXggNjEyODAyNWZmYzg3Y2FhM2QxMjE2NmIzYTlmODg4YjVlYWUwOTk4Yy4uNTM2NmE1Mzhj
NTQxYTkzOTE4Yjk5MWJjYjc3ZmRjOGMyODJlNzQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24u
aApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uKGZpbHRlcikpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRl
OgogICAgIEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uKFdlYktpdERPTU5vZGVGaWx0ZXIqIGZp
bHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0
RE9NTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktp
dERPTU5vZGVGaWx0ZXIuY3BwCmluZGV4IDI1OGZjNGFkOGY5ZGJkM2QwNjY0YTQzYzNkMGY0OTdj
NDBmOGI1ZGIuLmQ4MGZlNzAyZjE0NTE3MTA4MTVmMjc1MTZiYTJmNDE4MTIwZGYyNWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NTm9kZUZpbHRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Ob2Rl
RmlsdGVyLmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgIldlYktpdERPTU5vZGVGaWx0
ZXIuaCIKIAogI2luY2x1ZGUgIkdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgiCi0jaW5jbHVk
ZSAiTm9kZUZpbHRlci5oIgorI2luY2x1ZGUgIk5hdGl2ZU5vZGVGaWx0ZXIuaCIKICNpbmNsdWRl
ICJXZWJLaXRET01Ob2RlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZUZpbHRlclByaXZhdGUu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNzIsNyArNzIsNyBAQCBSZWZQdHI8V2Vi
Q29yZTo6Tm9kZUZpbHRlcj4gY29yZShXZWJLaXRET01Ob2RlRmlsdGVyKiBub2RlRmlsdGVyKQog
CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNvcmVOb2RlRmlsdGVyID0gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6Tm9kZUZpbHRlcio+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKG5v
ZGVGaWx0ZXIpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0ZXIiKSk7CiAgICAgaWYgKCFjb3JlTm9k
ZUZpbHRlcikgewotICAgICAgICBjb3JlTm9kZUZpbHRlciA9IFdlYkNvcmU6Ok5vZGVGaWx0ZXI6
OmNyZWF0ZShXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKG5vZGVG
aWx0ZXIpKTsKKyAgICAgICAgY29yZU5vZGVGaWx0ZXIgPSBXZWJDb3JlOjpOYXRpdmVOb2RlRmls
dGVyOjpjcmVhdGUoV2ViQ29yZTo6R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZShu
b2RlRmlsdGVyKSk7CiAgICAgICAgIG5vZGVGaWx0ZXJNYXAoKS5hZGQoY29yZU5vZGVGaWx0ZXIu
Z2V0KCksIG5vZGVGaWx0ZXIpOwogICAgICAgICBnX29iamVjdF93ZWFrX3JlZihHX09CSkVDVChu
b2RlRmlsdGVyKSwgbm9kZUZpbHRlck9iamVjdERlc3Ryb3llZENhbGxiYWNrLCBjb3JlTm9kZUZp
bHRlci5nZXQoKSk7CiAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKG5vZGVGaWx0
ZXIpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0ZXIiLCBjb3JlTm9kZUZpbHRlci5nZXQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApp
bmRleCAxYjVlOTViMmM3YjRlNTUxYmFiYzI5NzkxMGI0OWJhNzNiMmVhYTNhLi5iNWM1ZmYyZTU2
MDA1ZjdjZjM2MDM3NDQ4ZDU5YTZlZWIzYmE1ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTExNCw3ICsxMTQsNiBAQAog
I2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOYW1l
ZE5vZGVNYXBDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUN1c3RvbS5jcHAiCi0jaW5jbHVk
ZSAiSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKICNpbmNsdWRlICJKU05vZGVGaWx0ZXJDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U05vZGVMaXN0Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ2FsbGJhY2tEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2Fs
bGJhY2tEYXRhLmNwcAppbmRleCBkOThlNjMyNmNiM2U0OTM4OGI1MjM2N2U0ZjYyOTQwN2M4Yzdh
NjEzLi5jNDdlZjQwZjBhMTZkOTdjYjg1YTFlNTQwZWQxMjUxZmRlNzBlM2M3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9u
LmgiCisjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpT
QzsKICAgICAKQEAgLTY0LDE0ICs2NSwxOCBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjppbnZv
a2VDYWxsYmFjayhKU1ZhbHVlIHRoaXNWYWx1ZSwgTWFya2VkQXJndW1lbnRCdWZmZXImCiAgICAg
ICAgIGNhbGxUeXBlID0gY2FsbGJhY2soKS0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEoY2Fs
bGJhY2soKSwgY2FsbERhdGEpOwogICAgIH0KICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVO
b25lKSB7Ci0gICAgICAgIGlmIChtZXRob2QgPT0gQ2FsbGJhY2tUeXBlOjpGdW5jdGlvbikKKyAg
ICAgICAgaWYgKG1ldGhvZCA9PSBDYWxsYmFja1R5cGU6OkZ1bmN0aW9uKSB7CisgICAgICAgICAg
ICByZXR1cm5lZEV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGNyZWF0
ZVR5cGVFcnJvcihleGVjKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAg
ICB9CiAKICAgICAgICAgQVNTRVJUKCFmdW5jdGlvbk5hbWUuaXNOdWxsKCkpOwogICAgICAgICBm
dW5jdGlvbiA9IGNhbGxiYWNrKCktPmdldChleGVjLCBmdW5jdGlvbk5hbWUpOwogICAgICAgICBj
YWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlmIChj
YWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlw
ZU5vbmUpIHsKKyAgICAgICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gRXhjZXB0aW9uOjpjcmVh
dGUoZXhlYy0+dm0oKSwgY3JlYXRlVHlwZUVycm9yKGV4ZWMpKTsKICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBBU1NFUlQoIWZ1bmN0aW9uLmlz
RW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDb25kaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ29uZGl0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I0MTE5YTVh
NWQwYjcyODlmM2UxMzY4ZDkxMGQ3NmE3OThkOGI3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDb25kaXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
Ci0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIgotCi0jaW5jbHVkZSAiSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiSlNOb2RlRmls
dGVyLmgiCi0jaW5jbHVkZSAiTm9kZUZpbHRlci5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3Iu
aD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLUpTTm9kZUZpbHRlckNvbmRpdGlvbjo6SlNOb2RlRmls
dGVyQ29uZGl0aW9uKFZNJiwgTm9kZUZpbHRlciogb3duZXIsIEpTVmFsdWUgZmlsdGVyKQotICAg
IDogbV9maWx0ZXIoZmlsdGVyLmlzT2JqZWN0KCkgPyBXZWFrPEpTT2JqZWN0Pihqc0Nhc3Q8SlNP
YmplY3QqPihmaWx0ZXIpLCAmbV93ZWFrT3duZXIsIG93bmVyKSA6IG51bGxwdHIpCi17Ci19Ci0K
LXNob3J0IEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgTm9kZSogZmlsdGVyTm9kZSkgY29uc3QKLXsKLSAgICBKU0xvY2tIb2xkZXIgbG9jayhl
eGVjKTsKLQotICAgIGlmICghbV9maWx0ZXIpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUOwotCi0gICAgLy8gRXhlYyBpcyBudWxsIGlmIHdlJ3ZlIGJlZW4gY2FsbGVk
IGZyb20gYSBub24tSmF2YVNjcmlwdCBsYW5ndWFnZSBhbmQgdGhlIGRvY3VtZW50Ci0gICAgLy8g
aXMgbm8gbG9uZ2VyIGFibGUgdG8gcnVuIEphdmFTY3JpcHQgKGUuZy4sIGl0J3MgZGlzY29ubmVj
dGVkIGZyb20gaXRzIGZyYW1lKS4KLSAgICBpZiAoIWV4ZWMpCi0gICAgICAgIHJldHVybiBOb2Rl
RmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0gICAgSlNWYWx1ZSBmaWx0ZXIgPSBtX2ZpbHRlci5n
ZXQoKTsKLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdl
dENhbGxEYXRhKGZpbHRlciwgY2FsbERhdGEpOwotICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlw
ZU5vbmUpIHsKLSAgICAgICAgZmlsdGVyID0gZmlsdGVyLmdldChleGVjLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsICJhY2NlcHROb2RlIikpOwotICAgICAgICBjYWxsVHlwZSA9IGdldENh
bGxEYXRhKGZpbHRlciwgY2FsbERhdGEpOwotICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5
cGVOb25lKSB7Ci0gICAgICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZVR5cGVFcnJvcihleGVjLCAiTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBh
Y2NlcHROb2RlIGZ1bmN0aW9uIikpOwotICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJ
TFRFUl9SRUpFQ1Q7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmdzOwotICAgIC8vIEZJWE1FOiBUaGUgbm9kZSBzaG91bGQgaGF2ZSB0aGUgcHJvdG90eXBl
IGNoYWluIHRoYXQgY2FtZSBmcm9tIGl0cyBkb2N1bWVudCwgbm90Ci0gICAgLy8gd2hhdGV2ZXIg
cHJvdG90eXBlIGNoYWluIG1pZ2h0IGJlIG9uIHRoZSB3aW5kb3cgdGhpcyBmaWx0ZXIgY2FtZSBm
cm9tLiBCdWcgMjc2NjIKLSAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIGRlcHJlY2F0ZWRHbG9i
YWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIGZpbHRlck5vZGUpKTsKLSAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNU
OwotCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU0M6OmNhbGwoZXhlYywgZmlsdGVyLCBjYWxsVHlw
ZSwgY2FsbERhdGEsIG1fZmlsdGVyLmdldCgpLCBhcmdzKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0g
ICAgaW50IGludFJlc3VsdCA9IHJlc3VsdC50b0ludDMyKGV4ZWMpOwotICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7
Ci0KLSAgICByZXR1cm4gaW50UmVzdWx0OwotfQotCi1ib29sIEpTTm9kZUZpbHRlckNvbmRpdGlv
bjo6V2Vha093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBy
ZXR1cm4gdmlzaXRvci5jb250YWluc09wYXF1ZVJvb3QoY29udGV4dCk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YTFiZTMx
Nzg5OWE1ZDExYWY3MzIyZTA5MjZmNjQyMTE2ODAzYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICog
IENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
LSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIEpTTm9kZUZpbHRlckNv
bmRpdGlvbl9oCi0jZGVmaW5lIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCi0KLSNpbmNsdWRlICJO
b2RlRmlsdGVyQ29uZGl0aW9uLmgiCi0jaW5jbHVkZSA8aGVhcC9XZWFrLmg+Ci0jaW5jbHVkZSA8
aGVhcC9XZWFrSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgTm9k
ZUZpbHRlcjsKLQotICAgIGNsYXNzIEpTTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBOb2Rl
RmlsdGVyQ29uZGl0aW9uIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8SlNOb2Rl
RmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoSlNDOjpWTSYgdm0sIE5vZGVGaWx0ZXIqIG93bmVyLCBK
U0M6OkpTVmFsdWUgZmlsdGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBKU05vZGVGaWx0ZXJDb25kaXRpb24odm0sIG93bmVyLCBmaWx0ZXIpKTsKLSAgICAg
ICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgSlNOb2RlRmlsdGVyQ29uZGl0aW9uKEpTQzo6
Vk0mLCBOb2RlRmlsdGVyKiBvd25lciwgSlNDOjpKU1ZhbHVlIGZpbHRlcik7Ci0KLSAgICAgICAg
dmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0Owot
Ci0gICAgICAgIGNsYXNzIFdlYWtPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7
Ci0gICAgICAgICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYp
OwotICAgICAgICB9OwotICAgICAgICBXZWFrT3duZXIgbV93ZWFrT3duZXI7Ci0gICAgICAgIG11
dGFibGUgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fZmlsdGVyOwotICAgIH07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEpTTm9kZUZpbHRlckNvbmRpdGlvbl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApp
bmRleCA3MDUzM2RiMTY0OTBmMzAzNTI4OGIwZTMxNjEwNWVlM2U3ZjY0ODAwLi45ZjMwMGNhYzI4
YWFmYTU2ZWNkN2MzZmI0MzQ3OWFjODljMmM0MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDQxICsxMCw1OCBA
QAogICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU05vZGVGaWx0ZXIuaCIK
IAotI2luY2x1ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIgorI2luY2x1ZGUgIkpTQ2FsbGJh
Y2tEYXRhLmgiCisjaW5jbHVkZSAiSlNOb2RlLmgiCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgSlNOb2RlRmlsdGVyOjp2aXNpdEFkZGl0aW9u
YWxDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0b3IuYWRk
T3BhcXVlUm9vdCgmaW1wbCgpKTsKLX0KK3VzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLVJlZlB0cjxO
b2RlRmlsdGVyPiBKU05vZGVGaWx0ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1Zh
bHVlIHZhbHVlKQorLy8gRklYTUU6IFRoZSBiaW5kaW5ncyBnZW5lcmF0b3IgaXMgY3VycmVudGx5
IG5vdCBhYmxlIHRvIGdlbmVyYXRlCisvLyBjYWxsYmFjayBmdW5jdGlvbiBjYWxscyBpZiB0aGV5
IHJldHVybiBzb21ldGhpbmcgZWxzZSB0aGFuIGEKKy8vIGJvb2xlYW4uCit1aW50MTZfdCBKU05v
ZGVGaWx0ZXI6OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAodmFsdWUuaW5oZXJp
dHMoSlNOb2RlRmlsdGVyOjppbmZvKCkpKQotICAgICAgICByZXR1cm4gJkpTQzo6anNDYXN0PEpT
Tm9kZUZpbHRlcio+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsKKyAgICBSZWY8SlNOb2RlRmls
dGVyPiBwcm90ZWN0KCp0aGlzKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKG1fZGF0YS0+Z2xv
YmFsT2JqZWN0KCktPnZtKCkpOworCisgICAgRXhlY1N0YXRlKiBleGVjID0gbV9kYXRhLT5nbG9i
YWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7
CisgICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLCBub2Rl
KSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gTm9kZUZp
bHRlcjo6RklMVEVSX1JFSkVDVDsKKworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gcmV0dXJuZWRF
eGNlcHRpb247CisgICAgSlNWYWx1ZSB2YWx1ZSA9IG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJn
cywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6RnVuY3Rpb25Pck9iamVjdCwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhleGVjLCAiYWNjZXB0Tm9kZSIpLCByZXR1cm5lZEV4Y2VwdGlvbik7
CisgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgIC8vIFJldGhyb3cgZXhjZXB0
aW9uLgorICAgICAgICBleGVjLT52bSgpLnNldEV4Y2VwdGlvbihyZXR1cm5lZEV4Y2VwdGlvbik7
CisKKyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CisgICAgfQogCi0g
ICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB1
aW50MTZfdCByZXN1bHQgPSB0b1VJbnQxNihleGVjLCB2YWx1ZSwgTm9ybWFsQ29udmVyc2lvbik7
CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gTm9kZUZpbHRl
cjo6RklMVEVSX1JFSkVDVDsKIAotICAgIFJlZlB0cjxOb2RlRmlsdGVyPiByZXN1bHQgPSBOb2Rl
RmlsdGVyOjpjcmVhdGUoKTsKLSAgICByZXN1bHQtPnNldENvbmRpdGlvbihKU05vZGVGaWx0ZXJD
b25kaXRpb246OmNyZWF0ZSh2bSwgcmVzdWx0LmdldCgpLCB2YWx1ZSkpOwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2Jq
Q05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2Jq
Q05vZGVGaWx0ZXJDb25kaXRpb24uaAppbmRleCAzYmUxNTYzNmE1YThkZmEzYjU3MWNjYTg0MWJk
MmQzMDVhZWRlNjI5Li42YzM3NzYxYjEzZTY3OWFiMGM2YjFkZGVmZDA2NzdjZGM5OGFjZjk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRl
ckNvbmRpdGlvbi5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGZpbHRl
cikpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpTQzo6
RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5v
ZGUoTm9kZSopIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgT2JqQ05vZGVGaWx0ZXJD
b25kaXRpb24oaWQgPERPTU5vZGVGaWx0ZXI+IGZpbHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1tCmluZGV4IDI0
YjUxOTJmZjQxMzAwNTM2YTE1YTA2MGYxOTI1ZmFjNTdhMTMzYzIuLjk4NGExYWFhNWY5NTVkZDEz
ZWMyNDI0NTcxNTI3OWFiOWJjNTZmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbQpAQCAtMzcsNyArMzcsNyBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXNob3J0IE9i
akNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEV4ZWNTdGF0ZSosIE5vZGUqIG5vZGUp
IGNvbnN0CitzaG9ydCBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlKiBu
b2RlKSBjb25zdAogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6
OkZJTFRFUl9SRUpFQ1Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCBkNjkzMWM3NzE4NTNjYWM0NWYwODVi
MzA3OTc1MTk5NWI2MGQ0MzUzLi45ODI1ZmU0MTcyNGQ5MDhjMjlkYmNiOGU3NTY1OGM3ZGU3MWY2
NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTMwNSw3ICszMDUsNyBAQCBzdWIgU2tpcEZ1bmN0aW9u
IHsKICAgICAjIHNlcXVlbmNlPFQ+IHBhcmFtZXRlcnMsIGJlY2F1c2UgdGhpcyBjb2RlIGdlbmVy
YXRvciBkb2Vzbid0IGtub3cgaG93IHRvIGF1dG8tZ2VuZXJhdGUKICAgICAjIE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIgb3Igc2VxdWVuY2U8VD4uIFNraXAgRXZlbnRMaXN0ZW5lcnMgYmVjYXVzZSB0
aGV5IGFyZSBoYW5kbGVkIGVsc2V3aGVyZS4KICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVu
Y3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNDYWxs
YmFja0ludGVyZmFjZSgkcGFyYW0tPnR5cGUpIHx8CisgICAgICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNGdW5jdGlvbk9ubHlDYWxsYmFja0ludGVyZmFjZSgkcGFyYW0tPnR5cGUpIHx8CiAgICAg
ICAgICAgICAkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDbGFtcCJ9IHx8CiAgICAgICAg
ICAgICAkcGFyYW0tPnR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiIHx8CiAgICAgICAg
ICAgICAkcGFyYW0tPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiIHx8CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDg4NWMwZWMy
MmIxY2VjZDYyMTg4MzU0YTllYjY5ZjBkNmI1MTYxYTUuLjRmNmVlMjk5ZTc1NjhiMTQxNzdlMjcy
Y2M1MGY5ODUxZmFlMzE1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zNDc1LDYgKzM0NzUsOCBAQCBzdWIgR2VuZXJh
dGVDYWxsYmFja0hlYWRlcgogICAgICMgRGVzdHJ1Y3RvcgogICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgdmlydHVhbCB+JGNsYXNzTmFtZSgpO1xuIik7CiAKKyAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIEpTQ2FsbGJhY2tEYXRhKiBjYWxsYmFja0RhdGEoKSB7IHJldHVybiBtX2Rh
dGE7IH1cbiIpOworCiAgICAgIyBDb25zdHJ1Y3RvciBvYmplY3QgZ2V0dGVyLgogICAgIGlmIChA
eyRpbnRlcmZhY2UtPmNvbnN0YW50c30pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7XG4iKTsKQEAgLTM1MTYsNiArMzUxOCwxMCBAQCBzdWIgR2VuZXJhdGVD
YWxsYmFja0hlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDYWxsYmFja0Rh
dGEqIG1fZGF0YTtcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAor
ICAgICMgdG9KUygpLgorICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGludGVyZmFjZU5hbWUqKTtc
biIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsICRp
bnRlcmZhY2VOYW1lJiBpbXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmlt
cGwpOyB9XG5cbiIpOworCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn0gLy8gbmFtZXNwYWNl
IFdlYkNvcmVcblxuIik7CiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0
b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7CiAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29u
ZGl0aW9uYWxTdHJpbmc7CkBAIC0zNjg5LDYgKzM2OTUsMTQgQEAgc3ViIEdlbmVyYXRlQ2FsbGJh
Y2tJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAgICAgfQogCisgICAgIyB0b0pTKCkgaW1wbGVt
ZW50YXRpb24uCisgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbkpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW50ZXJmYWNlTmFtZSogaW1wbClc
biIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKCFpbXBsIHx8ICFzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0mPigqaW1wbCku
Y2FsbGJhY2tEYXRhKCkpXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuIGpzTnVsbCgpO1xuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFj
aygpO1xuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOworCiAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJcbn1cbiIpOwogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2Rl
R2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UpOwogICAgIHB1
c2goQGltcGxDb250ZW50LCAiXG4jZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlm
ICRjb25kaXRpb25hbFN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCmluZGV4IGM1Yjg3NzkzOTY3NTVjNGFkMDNjZWIz
ODM2OGMxZjIzZTk3MmNhYTYuLjYzNWQxMzMzMzY5YTkzMGU0ZTFlZTA4NmU3NTY2YWUxODkyYTNk
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvck9iakMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yT2JqQy5wbQpAQCAtNDIwLDYgKzQyMCw3IEBAIHN1YiBHZXRJbXBsQ2xhc3NOYW1lCiB7
CiAgICAgbXkgJG5hbWUgPSBzaGlmdDsKIAorICAgIHJldHVybiAiTmF0aXZlTm9kZUZpbHRlciIg
aWYgJG5hbWUgZXEgIk5vZGVGaWx0ZXIiOwogICAgIHJldHVybiAiRE9NV2luZG93IiBpZiAkbmFt
ZSBlcSAiQWJzdHJhY3RWaWV3IjsKICAgICByZXR1cm4gJG5hbWU7CiB9CkBAIC02OTMsNyArNjk0
LDcgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgIH0KIAogICAgIGlmICgkdHlwZSBlcSAi
Tm9kZUZpbHRlciIpIHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siTm9kZUZpbHRlci5oIn0gPSAx
OworICAgICAgICAkaW1wbEluY2x1ZGVzeyJOYXRpdmVOb2RlRmlsdGVyLmgifSA9IDE7CiAgICAg
ICAgICRpbXBsSW5jbHVkZXN7Ik9iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgifSA9IDE7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0xNTU3LDcgKzE1NTgsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAkbmVlZHNDdXN0b217
Ik5vZGVGaWx0ZXIifTsKICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIg
ICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IG5hdGl2ZU5vZGVGaWx0ZXI7XG4iKTsKICAg
ICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgaWYgKCRwYXJhbU5hbWUp
XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgICAgIG5h
dGl2ZU5vZGVGaWx0ZXIgPSBXZWJDb3JlOjpOb2RlRmlsdGVyOjpjcmVhdGUoV2ViQ29yZTo6T2Jq
Q05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgICAgIG5hdGl2ZU5vZGVGaWx0ZXIg
PSBXZWJDb3JlOjpOYXRpdmVOb2RlRmlsdGVyOjpjcmVhdGUoV2ViQ29yZTo6T2JqQ05vZGVGaWx0
ZXJDb25kaXRpb246OmNyZWF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVyTmFtZXMsICJlYyIpIGlmICRyYWlzZXNFeGNlcHRp
b25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdENhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKaW5kZXggNGJkNTk3ZDdiMDEzM2JmMWU4M2E5OGFjYWY3
NDAwODI4YTE3ZDY4Zi4uMGQ4OGU5MmVhMjE0MzI0N2I3MGJkOWI4MTRjZDliNTNhNTQ5MzJkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2FsbGJhY2suY3BwCkBAIC0yMzgsNiArMjM4LDE1IEBAIGJvb2wgSlNUZXN0Q2Fs
bGJhY2s6OmNhbGxiYWNrUmVxdWlyZXNUaGlzVG9QYXNzKGludCBsb25nUGFyYW0sIFRlc3ROb2Rl
KiB0ZXN0Tm9kCiAgICAgcmV0dXJuICFyZXR1cm5lZEV4Y2VwdGlvbjsKIH0KIAorSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDYWxsYmFj
ayogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwgfHwgIXN0YXRpY19jYXN0PEpTVGVzdENhbGxiYWNr
Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNUZXN0Q2FsbGJhY2smPigqaW1wbCkuY2FsbGJhY2tEYXRh
KCktPmNhbGxiYWNrKCk7CisKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5U
SEVTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDYWxsYmFjay5oCmluZGV4IGEyMmI3MGIzYjE5M2IzMjQzNDQ3YTk4ZWM0NjY0
NmY5YWY5MzM0ZjAuLmNkZDczNzczMDQ0ODZjODVlZTE2YWUzODM2ZmEyYTVhOTZiNDQ1OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDYWxsYmFjay5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJl
dHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OyB9CiAKICAgICB2aXJ0dWFsIH5KU1Rlc3RDYWxsYmFjaygpOworICAgIEpTQ2FsbGJhY2tEYXRh
KiBjYWxsYmFja0RhdGEoKSB7IHJldHVybiBtX2RhdGE7IH0KICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAKICAg
ICAvLyBGdW5jdGlvbnMKQEAgLTU4LDYgKzU5LDkgQEAgcHJpdmF0ZToKICAgICBKU0NhbGxiYWNr
RGF0YSogbV9kYXRhOwogfTsKIAorSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3RDYWxsYmFjayopOworaW5saW5lIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0Q2FsbGJhY2smIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAm
aW1wbCk7IH0KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNQ
RUVDSF9TWU5USEVTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAKaW5kZXgg
MGM0NWMzZmQ0MmQ5Njc2NDFkMmJjZDdiYTc1YmUwYWFjNDdjOGMwMS4uODk3YzdiZGRkNTQ3ZjQw
N2UwN2VjY2Y2ZDU4ZWRkYzVlMjhhYzQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0
aW9uLmNwcApAQCAtMTg5LDYgKzE4OSwxNSBAQCBib29sIEpTVGVzdENhbGxiYWNrRnVuY3Rpb246
OmNhbGxiYWNrUmVxdWlyZXNUaGlzVG9QYXNzKGludCBsb25nUGFyYW0sIFRlc3ROb2RlKgogICAg
IHJldHVybiAhcmV0dXJuZWRFeGNlcHRpb247CiB9CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiogaW1w
bCkKK3sKKyAgICBpZiAoIWltcGwgfHwgIXN0YXRpY19jYXN0PEpTVGVzdENhbGxiYWNrRnVuY3Rp
b24mPigqaW1wbCkuY2FsbGJhY2tEYXRhKCkpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uJj4oKmltcGwpLmNh
bGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpOworCit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShT
UEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggM2Zl
M2YyMDhkYWU1MWIyOGU2ZTljNzBkZDVkYzhlNmZiNWVkZjU5Mi4uNDEyZTIyOTVjNzE4ZWExYzhi
YzA1MjM5OGRjZjEyZmM5NmRlMTE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5o
CkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB2aXJ0
dWFsIH5KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uKCk7CisgICAgSlNDYWxsYmFja0RhdGEqIGNhbGxi
YWNrRGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfQogCiAgICAgLy8gRnVuY3Rpb25zCiAgICAgdmly
dHVhbCBib29sIGNhbGxiYWNrV2l0aE5vUGFyYW0oKTsKQEAgLTU3LDYgKzU4LDkgQEAgcHJpdmF0
ZToKICAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRhOwogfTsKIAorSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDYWxsYmFja0Z1bmN0aW9u
Kik7CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDYWxsYmFja0Z1bmN0aW9uJiBpbXBsKSB7
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggNjc0MmZiODhmOGEwNWM0YzU0NjJmMmU0MWE3NWVl
NzE3OTJiNTc2Yy4uNTU2ODQ3MDU5NGZhZTA3MDU3NDEyNGQ4ZWQ4ODQ0MzFlZDAxOGQ2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMDgsNyArMTA4LDYgQEAKICNpbmNsdWRl
ICJOYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCIKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuY3BwIgog
I2luY2x1ZGUgIk5vZGUuY3BwIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuY3BwIgogI2luY2x1ZGUg
Ik5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIgogI2luY2x1ZGUgIk5vZGVJdGVyYXRvci5jcHAiCiAj
aW5jbHVkZSAiTm9kZU9yU3RyaW5nLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9OYXRpdmVOb2RlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmls
dGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMGEzNGM5ZmY0YjUxNTlmZjk2MjQ0ZDYyNzczMDZhNTkxYjg0
ODBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0
ZXIuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTmF0aXZlTm9kZUZpbHRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K05hdGl2ZU5vZGVGaWx0ZXI6Ok5hdGl2ZU5vZGVGaWx0ZXIoUmVmUHRyPE5vZGVGaWx0ZXJDb25k
aXRpb24+JiYgY29uZGl0aW9uKQorICAgIDogbV9jb25kaXRpb24oY29uZGl0aW9uKQoreyB9CisK
K3VpbnQxNl90IE5hdGl2ZU5vZGVGaWx0ZXI6OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkKK3sKKyAg
ICAvLyBjYXN0IHRvIHNob3J0IHNpbGVuY2VzICJlbnVtZXJhbCBhbmQgbm9uLWVudW1lcmFsIHR5
cGVzIGluIHJldHVybiIgd2FybmluZworICAgIHJldHVybiBtX2NvbmRpdGlvbiA/IG1fY29uZGl0
aW9uLT5hY2NlcHROb2RlKG5vZGUpIDogc3RhdGljX2Nhc3Q8dWludDE2X3Q+KEZJTFRFUl9BQ0NF
UFQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5v
ZGVGaWx0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjA3OGVhYmM0NjAzNjUwZjM1MzRhNzdlYjJmNDgxMzMx
ZjI0YTk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVG
aWx0ZXIuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOYXRpdmVOb2Rl
RmlsdGVyX2gKKyNkZWZpbmUgTmF0aXZlTm9kZUZpbHRlcl9oCisKKyNpbmNsdWRlICJOb2RlRmls
dGVyLmgiCisjaW5jbHVkZSAiTm9kZUZpbHRlckNvbmRpdGlvbi5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE5hdGl2ZU5vZGVGaWx0ZXIgZmluYWwgOiBwdWJsaWMgTm9kZUZpbHRl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxOYXRpdmVOb2RlRmlsdGVyPiBjcmVhdGUoUmVm
UHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+JiYgY29uZGl0aW9uKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTmF0aXZlTm9kZUZpbHRlcihXVEY6Om1vdmUoY29uZGl0aW9uKSkp
OworICAgIH0KKworICAgIHN0YXRpYyBSZWY8TmF0aXZlTm9kZUZpbHRlcj4gY3JlYXRlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdGl2ZU5vZGVGaWx0ZXIoKSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCB1aW50MTZfdCBhY2NlcHROb2RlKE5vZGUqKSBvdmVycmlkZTsK
KworICAgIHZvaWQgc2V0Q29uZGl0aW9uKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNv
bmRpdGlvbikgeyBBU1NFUlQoIW1fY29uZGl0aW9uKTsgbV9jb25kaXRpb24gPSBjb25kaXRpb247
IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBOYXRpdmVOb2RlRmlsdGVyKFJlZlB0cjxOb2Rl
RmlsdGVyQ29uZGl0aW9uPiYmKTsKKworICAgIE5hdGl2ZU5vZGVGaWx0ZXIoKSB7IH0KKworICAg
IFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5hdGl2ZU5vZGVGaWx0ZXJfaAorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUZpbHRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkYWJjNTQw
YTcwZTc1NDhhOTk0YTI3NDFiNDAzMjMyNzdjNzFlNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5
OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAwIEZyZWRl
cmlrIEhvbGxqZW4gKGZyZWRlcmlrLmhvbGxqZW5AaGlnLm5vKQotICogQ29weXJpZ2h0IChDKSAy
MDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2Ft
dWVsIFdlaW5pZyAoc2FtLndlaW5pZ0BnbWFpbC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKLQotI2luY2x1ZGUgIk5vZGUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1zaG9ydCBOb2RlRmlsdGVyOjphY2NlcHROb2RlKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSwgTm9kZSogbm9kZSkgY29uc3QKLXsKLSAgICAvLyBjYXN0IHRvIHNob3J0
IHNpbGVuY2VzICJlbnVtZXJhbCBhbmQgbm9uLWVudW1lcmFsIHR5cGVzIGluIHJldHVybiIgd2Fy
bmluZwotICAgIHJldHVybiBtX2NvbmRpdGlvbiA/IG1fY29uZGl0aW9uLT5hY2NlcHROb2RlKHN0
YXRlLCBub2RlKSA6IHN0YXRpY19jYXN0PHNob3J0PihGSUxURVJfQUNDRVBUKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVG
aWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmgKaW5kZXggOTYxOTdkOTY5
NTE0MzBlODZmYjhiMzhlZjdhYmYyYmMzMGQ0MDI0OC4uMjZmNzY2MzFlODQ0YWZmZGJhZDQ1N2Ew
OGVkNzU0ZjYwM2VkOTIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5oCkBAIC0zLDcgKzMsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDAwIEZyZWRlcmlrIEhvbGxqZW4gKGZyZWRlcmlrLmhvbGxq
ZW5AaGlnLm5vKQogICogQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5j
b20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5pZ0BnbWFp
bC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4LCAyMDA5LCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjUsNzAgKzI1LDUwIEBACiAjaWZuZGVmIE5vZGVGaWx0ZXJfaAogI2RlZmluZSBOb2RlRmlsdGVy
X2gKIAotI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXJD
b25kaXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgTm9kZUZpbHRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPE5vZGVGaWx0ZXI+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIC8q
KgotICAgICAgICAgKiBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyBhcmUgcmV0dXJuZWQgYnkgdGhl
IGFjY2VwdE5vZGUoKQotICAgICAgICAgKiBtZXRob2Q6Ci0gICAgICAgICAqLwotICAgICAgICBl
bnVtIHsKLSAgICAgICAgICAgIEZJTFRFUl9BQ0NFUFQgPSAxLAotICAgICAgICAgICAgRklMVEVS
X1JFSkVDVCA9IDIsCi0gICAgICAgICAgICBGSUxURVJfU0tJUCAgID0gMwotICAgICAgICB9Owor
Y2xhc3MgTm9kZTsKIAotICAgICAgICAvKioKLSAgICAgICAgICogVGhlc2UgYXJlIHRoZSBhdmFp
bGFibGUgdmFsdWVzIGZvciB0aGUgd2hhdFRvU2hvdyBwYXJhbWV0ZXIuCi0gICAgICAgICAqIFRo
ZXkgYXJlIHRoZSBzYW1lIGFzIHRoZSBzZXQgb2YgcG9zc2libGUgdHlwZXMgZm9yIE5vZGUsIGFu
ZAotICAgICAgICAgKiB0aGVpciB2YWx1ZXMgYXJlIGRlcml2ZWQgYnkgdXNpbmcgYSBiaXQgcG9z
aXRpb24gY29ycmVzcG9uZGluZwotICAgICAgICAgKiB0byB0aGUgdmFsdWUgb2YgTm9kZVR5cGUg
Zm9yIHRoZSBlcXVpdmFsZW50IG5vZGUgdHlwZS4KLSAgICAgICAgICovCi0gICAgICAgIGVudW0g
ewotICAgICAgICAgICAgU0hPV19BTEwgICAgICAgICAgICAgICAgICAgICAgID0gMHhGRkZGRkZG
RiwKLSAgICAgICAgICAgIFNIT1dfRUxFTUVOVCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAw
MDEsCi0gICAgICAgICAgICBTSE9XX0FUVFJJQlVURSAgICAgICAgICAgICAgICAgPSAweDAwMDAw
MDAyLAotICAgICAgICAgICAgU0hPV19URVhUICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAw
MDAwNCwKLSAgICAgICAgICAgIFNIT1dfQ0RBVEFfU0VDVElPTiAgICAgICAgICAgICA9IDB4MDAw
MDAwMDgsCi0gICAgICAgICAgICBTSE9XX0VOVElUWV9SRUZFUkVOQ0UgICAgICAgICAgPSAweDAw
MDAwMDEwLAotICAgICAgICAgICAgU0hPV19FTlRJVFkgICAgICAgICAgICAgICAgICAgID0gMHgw
MDAwMDAyMCwKLSAgICAgICAgICAgIFNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiAgICA9IDB4
MDAwMDAwNDAsCi0gICAgICAgICAgICBTSE9XX0NPTU1FTlQgICAgICAgICAgICAgICAgICAgPSAw
eDAwMDAwMDgwLAotICAgICAgICAgICAgU0hPV19ET0NVTUVOVCAgICAgICAgICAgICAgICAgID0g
MHgwMDAwMDEwMCwKLSAgICAgICAgICAgIFNIT1dfRE9DVU1FTlRfVFlQRSAgICAgICAgICAgICA9
IDB4MDAwMDAyMDAsCi0gICAgICAgICAgICBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAg
PSAweDAwMDAwNDAwLAotICAgICAgICAgICAgU0hPV19OT1RBVElPTiAgICAgICAgICAgICAgICAg
ID0gMHgwMDAwMDgwMAotICAgICAgICB9OworY2xhc3MgTm9kZUZpbHRlciA6IHB1YmxpYyBSZWZD
b3VudGVkPE5vZGVGaWx0ZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Ob2RlRmlsdGVyKCkg
eyB9CisgICAgdmlydHVhbCB1aW50MTZfdCBhY2NlcHROb2RlKE5vZGUqKSA9IDA7CiAKLSAgICAg
ICAgc3RhdGljIFJlZjxOb2RlRmlsdGVyPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlRmlsdGVyQ29u
ZGl0aW9uPiBjb25kaXRpb24pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE5vZGVGaWx0ZXIoY29uZGl0aW9uKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0
aWMgUmVmPE5vZGVGaWx0ZXI+IGNyZWF0ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE5vZGVGaWx0ZXIoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzaG9y
dCBhY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0OwotCi0gICAgICAgIC8v
IERvIG5vdCBjYWxsIHRoZXNlIGZ1bmN0aW9ucy4gVGhleSBhcmUganVzdCBzY2FmZm9sZGluZyB0
byBzdXBwb3J0IHRoZSBPYmplY3RpdmUtQyBiaW5kaW5ncy4KLSAgICAgICAgLy8gVGhleSBvcGVy
YXRlIGluIHRoZSBtYWluIHRocmVhZCBub3JtYWwgd29ybGQsIGFuZCB0aGV5IHN3YWxsb3cgSlMg
ZXhjZXB0aW9ucy4KLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdCB7
IHJldHVybiBhY2NlcHROb2RlKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpLCBub2RlKSwgbm9kZSk7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgc2V0Q29uZGl0aW9u
KFBhc3NSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gY29uZGl0aW9uKSB7IEFTU0VSVCghbV9j
b25kaXRpb24pOyBtX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsgfQotCi0gICAgcHJpdmF0ZToKLSAg
ICAgICAgZXhwbGljaXQgTm9kZUZpbHRlcihQYXNzUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+
IGNvbmRpdGlvbikgOiBtX2NvbmRpdGlvbihjb25kaXRpb24pIHsgfQotICAgICAgICBOb2RlRmls
dGVyKCkge30KKyAgICAvKgorICAgICAqIFRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIGFyZSByZXR1
cm5lZCBieSB0aGUgYWNjZXB0Tm9kZSgpCisgICAgICogbWV0aG9kOgorICAgICAqLworICAgIGVu
dW0geworICAgICAgICBGSUxURVJfQUNDRVBUID0gMSwKKyAgICAgICAgRklMVEVSX1JFSkVDVCA9
IDIsCisgICAgICAgIEZJTFRFUl9TS0lQICAgPSAzCisgICAgfTsKIAotICAgICAgICBSZWZQdHI8
Tm9kZUZpbHRlckNvbmRpdGlvbj4gbV9jb25kaXRpb247CisgICAgLyoKKyAgICAgKiBUaGVzZSBh
cmUgdGhlIGF2YWlsYWJsZSB2YWx1ZXMgZm9yIHRoZSB3aGF0VG9TaG93IHBhcmFtZXRlci4KKyAg
ICAgKiBUaGV5IGFyZSB0aGUgc2FtZSBhcyB0aGUgc2V0IG9mIHBvc3NpYmxlIHR5cGVzIGZvciBO
b2RlLCBhbmQKKyAgICAgKiB0aGVpciB2YWx1ZXMgYXJlIGRlcml2ZWQgYnkgdXNpbmcgYSBiaXQg
cG9zaXRpb24gY29ycmVzcG9uZGluZworICAgICAqIHRvIHRoZSB2YWx1ZSBvZiBOb2RlVHlwZSBm
b3IgdGhlIGVxdWl2YWxlbnQgbm9kZSB0eXBlLgorICAgICAqLworICAgIGVudW0geworICAgICAg
ICBTSE9XX0FMTCAgICAgICAgICAgICAgICAgICAgICAgPSAweEZGRkZGRkZGLAorICAgICAgICBT
SE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAxLAorICAgICAgICBTSE9X
X0FUVFJJQlVURSAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAyLAorICAgICAgICBTSE9XX1RF
WFQgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDA0LAorICAgICAgICBTSE9XX0NEQVRB
X1NFQ1RJT04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAorICAgICAgICBTSE9XX0VOVElUWV9S
RUZFUkVOQ0UgICAgICAgICAgPSAweDAwMDAwMDEwLAorICAgICAgICBTSE9XX0VOVElUWSAgICAg
ICAgICAgICAgICAgICAgPSAweDAwMDAwMDIwLAorICAgICAgICBTSE9XX1BST0NFU1NJTkdfSU5T
VFJVQ1RJT04gICAgPSAweDAwMDAwMDQwLAorICAgICAgICBTSE9XX0NPTU1FTlQgICAgICAgICAg
ICAgICAgICAgPSAweDAwMDAwMDgwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UICAgICAgICAgICAg
ICAgICAgPSAweDAwMDAwMTAwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UX1RZUEUgICAgICAgICAg
ICAgPSAweDAwMDAwMjAwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAg
PSAweDAwMDAwNDAwLAorICAgICAgICBTSE9XX05PVEFUSU9OICAgICAgICAgICAgICAgICAgPSAw
eDAwMDAwODAwCiAgICAgfTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVGaWx0ZXIuaWRsCmluZGV4IGRlZWUwYWI2MzgyMjFjYzUwNDA5YWFmODllMzQ2MmY4
NGEyZGMyYWMuLmZiNzM2NDk1ZTkxNDhkNTZmMDA3OGRjMmQxOWVhNTAwNjEzZDY1MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUZpbHRlci5pZGwKQEAgLTIwLDE2ICsyMCwxMiBAQAogCiAvLyBJbnRyb2R1
Y2VkIGluIERPTSBMZXZlbCAyOgogWwotICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAotICAgIEpT
Q3VzdG9tVG9OYXRpdmVPYmplY3QsCiAgICAgT2JqQ1Byb3RvY29sLAotICAgIENQUFB1cmVJbnRl
cmZhY2UsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIE5vZGVG
aWx0ZXIgeworXSBjYWxsYmFjayBpbnRlcmZhY2UgTm9kZUZpbHRlciB7CiAgICAgLy8gQ29uc3Rh
bnRzIHJldHVybmVkIGJ5IGFjY2VwdE5vZGUKLSAgICBjb25zdCBzaG9ydCAgICAgICAgICAgICAg
IEZJTFRFUl9BQ0NFUFQgICAgICAgICAgICAgICAgICA9IDE7Ci0gICAgY29uc3Qgc2hvcnQgICAg
ICAgICAgICAgICBGSUxURVJfUkVKRUNUICAgICAgICAgICAgICAgICAgPSAyOwotICAgIGNvbnN0
IHNob3J0ICAgICAgICAgICAgICAgRklMVEVSX1NLSVAgICAgICAgICAgICAgICAgICAgID0gMzsK
KyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxURVJfQUNDRVBUID0gMTsKKyAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBGSUxURVJfUkVKRUNUID0gMjsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBGSUxURVJfU0tJUCA9IDM7CiAKICAgICAvLyBDb25zdGFudHMgZm9yIHdoYXRUb1Nob3cKICAg
ICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAg
ICA9IDB4RkZGRkZGRkY7CkBAIC00Niw3ICs0MiwxMCBAQAogICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgICAgICAgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMDsKICAg
ICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAgICAgICAg
ICA9IDB4MDAwMDA4MDA7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIHNob3J0IGFjY2Vw
dE5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBOb2RlIG4pOwotCisjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKKyAgICBzaG9y
dCBhY2NlcHROb2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsKKyNlbHNl
CisgICAgW0N1c3RvbV0gdW5zaWduZWQgc2hvcnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmlu
ZWRdIG9wdGlvbmFsIE5vZGUgbik7CisjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlRmlsdGVyQ29uZGl0aW9uLmNwcAppbmRleCBlNDc4ZDk0OGFhNDQ4YzJjOGVlMjk0ZGE5MjMx
OWVmMWJmYjU3YzAxLi43MmM5ZWUxMjZmODQ2Y2JiNzM4ZGE1ZDkwNDBlMmQ3Y2Y1MDgyOTZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0yOSw3ICsy
OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc2hvcnQgTm9kZUZpbHRlckNvbmRpdGlv
bjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdAorc2hvcnQgTm9kZUZp
bHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlKikgY29uc3QKIHsKICAgICByZXR1cm4gTm9k
ZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNv
bmRpdGlvbi5oCmluZGV4IDhiYTM4ZjY5OTEwZGE1YWE0MjgyZDk1ZjRjMzQyYmRmZjNmMGNjZDMu
LjJiOWFiNjhmZGNjM2YyZTY3YzZlNWUyMGIwZTEwNTI1NjAzNTY3N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPE5vZGVGaWx0ZXJDb25kaXRpb24+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwg
fk5vZGVGaWx0ZXJDb25kaXRpb24oKSB7IH0KLSAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHRO
b2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBz
aG9ydCBhY2NlcHROb2RlKE5vZGUqKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB2
aXNpdEFnZ3JlZ2F0ZShKU0M6OlNsb3RWaXNpdG9yJikgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUl0ZXJhdG9yLmNwcAppbmRleCBlODcwMWVlYmEzZDc5YTdmYjk0NTRmMTFlNGE0Njg2
ODI0MGM2ZWQ3Li5iNTk5NzZiYTRmMmM0MzM4YzEyNTU0YWQ4NTJiMmE1M2Y2NDhmOTEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcApAQCAtODksMTEgKzg5LDExIEBAIE5vZGVJdGVy
YXRvcjo6fk5vZGVJdGVyYXRvcigpCiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmRldGFjaE5vZGVJ
dGVyYXRvcih0aGlzKTsKIH0KIAotUGFzc1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHRO
b2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRy
PE5vZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
aWYgKG1fZGV0YWNoZWQpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIFJlZlB0
cjxOb2RlPiByZXN1bHQ7CkBAIC0xMDQsOSArMTA0LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBOb2Rl
SXRlcmF0b3I6Om5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgRXhjZXB0aW9uQ29kZSYg
ZWMKICAgICAgICAgLy8gSW4gb3RoZXIgd29yZHMsIEZJTFRFUl9SRUpFQ1QgZG9lcyBub3QgcGFz
cyBvdmVyIGRlc2NlbmRhbnRzCiAgICAgICAgIC8vIG9mIHRoZSByZWplY3RlZCBub2RlLiBIZW5j
ZSwgRklMVEVSX1JFSkVDVCBpcyB0aGUgc2FtZSBhcyBGSUxURVJfU0tJUC4KICAgICAgICAgUmVm
UHRyPE5vZGU+IHByb3Zpc2lvbmFsUmVzdWx0ID0gbV9jYW5kaWRhdGVOb2RlLm5vZGU7Ci0gICAg
ICAgIGJvb2wgbm9kZVdhc0FjY2VwdGVkID0gYWNjZXB0Tm9kZShzdGF0ZSwgcHJvdmlzaW9uYWxS
ZXN1bHQuZ2V0KCkpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0gICAgICAgIGlmIChz
dGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgYm9vbCBub2RlV2FzQWNjZXB0ZWQgPSBhY2NlcHROb2RlKHByb3Zpc2lvbmFsUmVzdWx0Lmdl
dCgpKSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwogICAgICAgICBpZiAobm9kZVdhc0Fj
Y2VwdGVkKSB7CiAgICAgICAgICAgICBtX3JlZmVyZW5jZU5vZGUgPSBtX2NhbmRpZGF0ZU5vZGU7
CiAgICAgICAgICAgICByZXN1bHQgPSBwcm92aXNpb25hbFJlc3VsdC5yZWxlYXNlKCk7CkBAIC0x
MTgsMTEgKzExNiwxMSBAQCBQYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBFeGNlcHRpb25Db2RlJiBlYwogICAgIHJldHVybiByZXN1
bHQucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6cHJldmlv
dXNOb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVm
UHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIGlmIChtX2RldGFjaGVkKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAg
ICBSZWZQdHI8Tm9kZT4gcmVzdWx0OwpAQCAtMTMzLDkgKzEzMSw3IEBAIFBhc3NSZWZQdHI8Tm9k
ZT4gTm9kZUl0ZXJhdG9yOjpwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBFeGNl
cHRpb25Db2RlCiAgICAgICAgIC8vIEluIG90aGVyIHdvcmRzLCBGSUxURVJfUkVKRUNUIGRvZXMg
bm90IHBhc3Mgb3ZlciBkZXNjZW5kYW50cwogICAgICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9k
ZS4gSGVuY2UsIEZJTFRFUl9SRUpFQ1QgaXMgdGhlIHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAg
ICAgIFJlZlB0cjxOb2RlPiBwcm92aXNpb25hbFJlc3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2Rl
OwotICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUoc3RhdGUsIHByb3Zp
c2lvbmFsUmVzdWx0LmdldCgpKSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwotICAgICAg
ICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGJvb2wgbm9kZVdhc0FjY2VwdGVkID0gYWNjZXB0Tm9kZShwcm92aXNpb25hbFJl
c3VsdC5nZXQoKSkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5v
ZGVXYXNBY2NlcHRlZCkgewogICAgICAgICAgICAgbV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRh
dGVOb2RlOwogICAgICAgICAgICAgcmVzdWx0ID0gcHJvdmlzaW9uYWxSZXN1bHQucmVsZWFzZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCmluZGV4IDVmODllNjJlZGY1ZGQ3ZTE5ZjZlNTlj
YWJiNDViOTRiMDdkNDFhYWYuLjQ3MTM5YjM5NjMwMWExNzJkODkxZWM0NzQ3NzFjMzBhYjQzYzZi
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKQEAgLTQzLDggKzQzLDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIAotICAg
ICAgICBQYXNzUmVmUHRyPE5vZGU+IG5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgRXhjZXB0aW9u
Q29kZSYpOwotICAgICAgICBQYXNzUmVmUHRyPE5vZGU+IHByZXZpb3VzTm9kZShKU0M6OkV4ZWNT
dGF0ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgUGFzc1JlZlB0cjxOb2RlPiBuZXh0Tm9k
ZShFeGNlcHRpb25Db2RlJik7CisgICAgICAgIFBhc3NSZWZQdHI8Tm9kZT4gcHJldmlvdXNOb2Rl
KEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgICAgICBOb2Rl
KiByZWZlcmVuY2VOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VOb2RlLm5vZGUuZ2V0
KCk7IH0KQEAgLTUzLDExICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8g
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGFueSBub2RlIGlzIHJlbW92ZWQgZnJvbSB0
aGUgZG9jdW1lbnQgdHJlZS4KICAgICAgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2RlJik7
CiAKLSAgICAgICAgLy8gRG8gbm90IGNhbGwgdGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0
IHNjYWZmb2xkaW5nIHRvIHN1cHBvcnQgdGhlIE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAg
ICAvLyBUaGV5IG9wZXJhdGUgaW4gdGhlIG1haW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRo
ZXkgc3dhbGxvdyBKUyBleGNlcHRpb25zLgotICAgICAgICBQYXNzUmVmUHRyPE5vZGU+IG5leHRO
b2RlKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBuZXh0Tm9kZShleGVjU3RhdGVGcm9tTm9k
ZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgcmVmZXJlbmNlTm9kZSgpKSwgZWMpOyB9Ci0gICAg
ICAgIFBhc3NSZWZQdHI8Tm9kZT4gcHJldmlvdXNOb2RlKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJl
dHVybiBwcmV2aW91c05vZGUoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxk
KCksIHJlZmVyZW5jZU5vZGUoKSksIGVjKTsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgTm9k
ZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUGFz
c1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbAppbmRleCA1Y2Y3OGRmZjk2NjI0M2U5MzRmNmNlYzM5
OWU0YTY0M2JkMmFjZmUxLi5hOTk1MGVmM2NjNzNjOWY5OGM5OWQyY2Q3MDgxMTliMjAzYTM5NGUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbApAQCAtMzAsOCArMzAsOCBAQAogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJlZmVyZW5jZU5vZGU7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gcG9pbnRlckJlZm9yZVJlZmVyZW5jZU5vZGU7CiAKLSAgICBbQ2FsbFdp
dGg9U2NyaXB0U3RhdGUsIFJhaXNlc0V4Y2VwdGlvbl0gTm9kZSBuZXh0Tm9kZSgpOwotICAgIFtD
YWxsV2l0aD1TY3JpcHRTdGF0ZSwgUmFpc2VzRXhjZXB0aW9uXSBOb2RlIHByZXZpb3VzTm9kZSgp
OworICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGUgbmV4dE5vZGUoKTsKKyAgICBbUmFpc2VzRXhj
ZXB0aW9uXSBOb2RlIHByZXZpb3VzTm9kZSgpOwogICAgIHZvaWQgZGV0YWNoKCk7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmF2ZXJzYWwuY3BwCmluZGV4IDFjMjI3MDVlN2ZhN2M0YThkNDkxMDhhYzM4NzIx
MzQzZTM4ZjlkNmEuLjc2M2YxNDFjZTcxNmRjYWNkYjY4MjdhNGVmYmFhYzczZmZhOGI0NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCkBAIC0zOCw3ICszOCw3IEBAIE5vZGVJdGVyYXRvckJh
c2U6Ok5vZGVJdGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQg
bG9uZyB3aGF0CiB7CiB9CiAKLXNob3J0IE5vZGVJdGVyYXRvckJhc2U6OmFjY2VwdE5vZGUoSlND
OjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQgTm9kZUl0ZXJhdG9y
QmFzZTo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUbyBo
YW5kbGUgWE1MIHByb3Blcmx5IHdlIHdvdWxkIGhhdmUgdG8gY2hlY2sgbV9leHBhbmRFbnRpdHlS
ZWZlcmVuY2VzLgogCkBAIC00OCw3ICs0OCw3IEBAIHNob3J0IE5vZGVJdGVyYXRvckJhc2U6OmFj
Y2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKSBjb25zdAogICAgICAg
ICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1NLSVA7CiAgICAgaWYgKCFtX2ZpbHRlcikKICAg
ICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0gICAgcmV0dXJuIG1fZmls
dGVyLT5hY2NlcHROb2RlKHN0YXRlLCBub2RlKTsKKyAgICByZXR1cm4gbV9maWx0ZXItPmFjY2Vw
dE5vZGUobm9kZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJz
YWwuaAppbmRleCAxNWYwOWUyYWFjYmJiMGEzNDE3MGY4NDUxMGQ0MzVlNzg2Mzg3NDY1Li42YWNm
YmRiY2E1ZDNmNGU4NTkwNWYyNjkxZWYxZmY2ZTFmMTc0ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJhdmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNh
bC5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByb3RlY3Rl
ZDoKICAgICAgICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcyk7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBO
b2RlKikgY29uc3Q7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0OwogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPE5vZGU+IG1fcm9vdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
V2Fsa2VyLmNwcAppbmRleCBkZjAzNGIxN2RiOGU3NzBjNTM4MDQxNGJmODM0NDUxNjhlOGE2MDlm
Li4wNTgzNjIwNmQ2NjU0NzVhMzUzMWQyYmNkMDViOWM3NTE2MDNmMTZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuY3BwCkBAIC01NCwyOCArNTQsMjQgQEAgaW5saW5lIE5vZGUqIFRyZWVXYWxr
ZXI6OnNldEN1cnJlbnQoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQogICAgIHJldHVybiBtX2N1cnJl
bnQuZ2V0KCk7CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6OnBhcmVudE5vZGUoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6cGFyZW50Tm9kZSgpCiB7CiAgICAgUmVmUHRy
PE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgd2hpbGUgKG5vZGUgIT0gcm9vdCgpKSB7CiAg
ICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSkKLSAg
ICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNj
ZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+
aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShu
b2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6
RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFz
ZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5v
ZGUqIFRyZWVXYWxrZXI6OmZpcnN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSog
VHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9
IG1fY3VycmVudC0+Zmlyc3RDaGlsZCgpOyBub2RlOyApIHsKLSAgICAgICAgc2hvcnQgYWNjZXB0
Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAo
c3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwog
ICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKICAgICAgICAgICAgIGNhc2UgTm9k
ZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDoKICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBub2Rl
LnJlbGVhc2UoKTsKQEAgLTk2LDE5ICs5MiwxNyBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpmaXJzdENo
aWxkKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIENv
bnRhaW5lck5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgICAgIGlm
ICghcGFyZW50IHx8IHBhcmVudCA9PSByb290KCkgfHwgcGFyZW50ID09IG1fY3VycmVudCkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgICAgIG5vZGUgPSBwYXJlbnQ7CiAgICAgICAgIH0gd2hpbGUgKG5vZGUpOwogICAg
IH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdh
bGtlcjo6bGFzdENoaWxkKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6
Omxhc3RDaGlsZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudC0+
bGFzdENoaWxkKCk7IG5vZGU7ICkgewotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0g
YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0
ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgc2hvcnQg
YWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIHN3aXRj
aCAoYWNjZXB0Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxU
RVJfQUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFzZSgpOwpA
QCAtMTI5LDIzICsxMjMsMjEgQEAgTm9kZSogVHJlZVdhbGtlcjo6bGFzdENoaWxkKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIENvbnRhaW5lck5vZGUq
IHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgICAgIGlmICghcGFyZW50IHx8
IHBhcmVudCA9PSByb290KCkgfHwgcGFyZW50ID09IG1fY3VycmVudCkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAg
IG5vZGUgPSBwYXJlbnQ7CiAgICAgICAgIH0gd2hpbGUgKG5vZGUpOwogICAgIH0KLSAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cHJldmlv
dXNTaWJsaW5nKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6OnByZXZp
b3VzU2libGluZygpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAg
aWYgKG5vZGUgPT0gcm9vdCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gc2libGlu
ZyA9IG5vZGUtPnByZXZpb3VzU2libGluZygpOyBzaWJsaW5nOyApIHsKLSAgICAgICAgICAgIHNo
b3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBzaWJsaW5nLmdldCgpKTsK
LSAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0g
YWNjZXB0Tm9kZShzaWJsaW5nLmdldCgpKTsKICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9k
ZVJlc3VsdCkgewogICAgICAgICAgICAgICAgIGNhc2UgTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQ
VDoKICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gc2libGluZy5yZWxlYXNlKCk7CkBA
IC0xNjQsMjUgKzE1NiwyMSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxpbmcoSlND
OjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICB9CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJl
bnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSB8fCBub2RlID09IHJvb3QoKSkKLSAgICAgICAg
ICAgIHJldHVybiAwOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9k
ZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdl
dCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVS
X0FDQ0VQVCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpuZXh0U2libGluZyhKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpuZXh0U2libGluZygpCiB7CiAgICAgUmVm
UHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgaWYgKG5vZGUgPT0gcm9vdCgpKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgd2hpbGUgKDEpIHsK
ICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gc2libGluZyA9IG5vZGUtPm5leHRTaWJsaW5nKCk7
IHNpYmxpbmc7ICkgewotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2Vw
dE5vZGUoc3RhdGUsIHNpYmxpbmcuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0
YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHNpYmxpbmcuZ2V0KCkpOwog
ICAgICAgICAgICAgc3dpdGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAg
Y2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgICAgICBtX2N1
cnJlbnQgPSBzaWJsaW5nLnJlbGVhc2UoKTsKQEAgLTIwMSwzMSArMTg5LDI1IEBAIE5vZGUqIFRy
ZWVXYWxrZXI6Om5leHRTaWJsaW5nKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgfQog
ICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAoIW5vZGUgfHwg
bm9kZSA9PSByb290KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgc2hvcnQgYWNj
ZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBp
ZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJl
c3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVz
dWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIAotTm9kZSogVHJlZVdhbGtl
cjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6
OnByZXZpb3VzTm9kZSgpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAg
ICAgd2hpbGUgKG5vZGUgIT0gcm9vdCgpKSB7CiAgICAgICAgIHdoaWxlIChOb2RlKiBwcmV2aW91
c1NpYmxpbmcgPSBub2RlLT5wcmV2aW91c1NpYmxpbmcoKSkgewogICAgICAgICAgICAgbm9kZSA9
IHByZXZpb3VzU2libGluZzsKLSAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBh
Y2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBz
dGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAg
ICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpF
Q1QpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB3aGlsZSAoTm9kZSog
bGFzdENoaWxkID0gbm9kZS0+bGFzdENoaWxkKCkpIHsKICAgICAgICAgICAgICAgICBub2RlID0g
bGFzdENoaWxkOwotICAgICAgICAgICAgICAgIGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2Rl
KHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUt
PmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgICAgICBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAg
ICAgICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfUkVK
RUNUKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTIzNSwy
OSArMjE3LDI1IEBAIE5vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUgPT0g
cm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwog
ICAgICAgICBpZiAoIXBhcmVudCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgICAgIG5vZGUgPSBwYXJlbnQ7Ci0gICAgICAgIHNob3J0IGFj
Y2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAg
aWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgp
KTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FD
Q0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAg
ICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRyZWVX
YWxrZXI6Om5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6
Om5leHROb2RlKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKIENoaWxk
cmVuOgogICAgIHdoaWxlIChOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpKSB7
CiAgICAgICAgIG5vZGUgPSBmaXJzdENoaWxkOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVz
dWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAm
JiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAg
ICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQp
CiAgICAgICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAgICAgICAg
IGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCkBAIC0y
NjUsOSArMjQzLDcgQEAgQ2hpbGRyZW46CiAgICAgfQogICAgIHdoaWxlIChOb2RlKiBuZXh0U2li
bGluZyA9IE5vZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCByb290KCkp
KSB7CiAgICAgICAgIG5vZGUgPSBuZXh0U2libGluZzsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9k
ZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3Rh
dGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkp
OwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUND
RVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAg
ICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVdhbGtlci5oCmluZGV4IGM0NDBjMjk2Y2M2NzUzNjUwMjllNTQ2MDc3Y2EzMmI3
N2YwNjRjNGQuLjZhM2ZlNzE2OGYwNDg1ZDNlYThmZTc0NmJjMGU3MTY0MGExN2M2MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVXYWxrZXIuaApAQCAtNDUsMjMgKzQ1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgTm9kZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQu
Z2V0KCk7IH0KICAgICAgICAgdm9pZCBzZXRDdXJyZW50Tm9kZShQYXNzUmVmUHRyPE5vZGU+LCBF
eGNlcHRpb25Db2RlJik7CiAKLSAgICAgICAgTm9kZSogcGFyZW50Tm9kZShKU0M6OkV4ZWNTdGF0
ZSopOwotICAgICAgICBOb2RlKiBmaXJzdENoaWxkKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAg
IE5vZGUqIGxhc3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBwcmV2aW91
c1NpYmxpbmcoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogbmV4dFNpYmxpbmcoSlND
OjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogcHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRl
Kik7Ci0gICAgICAgIE5vZGUqIG5leHROb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0KLSAgICAgICAg
Ly8gRG8gbm90IGNhbGwgdGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNjYWZmb2xkaW5n
IHRvIHN1cHBvcnQgdGhlIE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAvLyBUaGV5IG9w
ZXJhdGUgaW4gdGhlIG1haW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkgc3dhbGxvdyBK
UyBleGNlcHRpb25zLgotICAgICAgICBOb2RlKiBwYXJlbnROb2RlKCkgeyByZXR1cm4gcGFyZW50
Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50
LmdldCgpKSk7IH0KLSAgICAgICAgTm9kZSogZmlyc3RDaGlsZCgpIHsgcmV0dXJuIGZpcnN0Q2hp
bGQoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5n
ZXQoKSkpOyB9Ci0gICAgICAgIE5vZGUqIGxhc3RDaGlsZCgpIHsgcmV0dXJuIGxhc3RDaGlsZChl
eGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgp
KSk7IH0KLSAgICAgICAgTm9kZSogcHJldmlvdXNTaWJsaW5nKCkgeyByZXR1cm4gcHJldmlvdXNT
aWJsaW5nKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJl
bnQuZ2V0KCkpKTsgfQotICAgICAgICBOb2RlKiBuZXh0U2libGluZygpIHsgcmV0dXJuIG5leHRT
aWJsaW5nKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJl
bnQuZ2V0KCkpKTsgfQotICAgICAgICBOb2RlKiBwcmV2aW91c05vZGUoKSB7IHJldHVybiBwcmV2
aW91c05vZGUoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3Vy
cmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5vZGUqIG5leHROb2RlKCkgeyByZXR1cm4gbmV4dE5v
ZGUoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5n
ZXQoKSkpOyB9CisgICAgICAgIE5vZGUqIHBhcmVudE5vZGUoKTsKKyAgICAgICAgTm9kZSogZmly
c3RDaGlsZCgpOworICAgICAgICBOb2RlKiBsYXN0Q2hpbGQoKTsKKyAgICAgICAgTm9kZSogcHJl
dmlvdXNTaWJsaW5nKCk7CisgICAgICAgIE5vZGUqIG5leHRTaWJsaW5nKCk7CisgICAgICAgIE5v
ZGUqIHByZXZpb3VzTm9kZSgpOworICAgICAgICBOb2RlKiBuZXh0Tm9kZSgpOwogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgVHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25n
IHdoYXRUb1Nob3csIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVm
ZXJlbmNlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKaW5kZXggMjYzYWVmYTQ5MDI5NWY0
MGMwYmNiOWFkZWVlMGZlNzhkNDBlNjJjZi4uNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThk
ZjQwMjBlNDcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbApAQCAtMjksMTIgKzI5LDEy
IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNl
czsgICAgICAgIAogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1
cnJlbnROb2RlOwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIHBhcmVudE5vZGUo
KTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgZmlyc3RDaGlsZCgpOwotICAgIFtD
YWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBsYXN0Q2hpbGQoKTsKLSAgICBbQ2FsbFdpdGg9U2Ny
aXB0U3RhdGVdIE5vZGUgcHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0
YXRlXSBOb2RlIG5leHRTaWJsaW5nKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2Rl
IHByZXZpb3VzTm9kZSgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBuZXh0Tm9k
ZSgpOworICAgIE5vZGUgcGFyZW50Tm9kZSgpOworICAgIE5vZGUgZmlyc3RDaGlsZCgpOworICAg
IE5vZGUgbGFzdENoaWxkKCk7CisgICAgTm9kZSBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICBOb2Rl
IG5leHRTaWJsaW5nKCk7CisgICAgTm9kZSBwcmV2aW91c05vZGUoKTsKKyAgICBOb2RlIG5leHRO
b2RlKCk7CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjExNjlmMjNhZTg5YTlhM2FkM2RlNjgyYmU4NGE5YmM3MWU0
MTBjMy4uMWM5ZDJlODYyNDgzZjUxODU5MDY2Mjc0YWZiOTFjODBlYmEzNWIyZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDU0IEBACiAyMDE1LTA4LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKKyAgICAgICAgTm9kZUZpbHRlciBzaG91bGQgYmUgYSBjYWxsYmFjayBpbnRlcmZhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODQxNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20v
VHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFz
ZWxpbmUsIHRoZSBuZXcgZXhjZXB0aW9uIG1lc3NhZ2UgaXMgZGlmZmVyZW50IGJ1dCB0aGUgZXhj
ZXB0aW9uCisgICAgICAgIHR5cGUgaXMgdGhlIHNhbWUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9j
b25zdGFudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL2NvbnN0YW50cy5odG1s
OgorICAgICAgICBTdG9wIGNoZWNraW5nIGZvciBjb25zdGFudHMgb24gTm9kZUZpbHRlciBpbnN0
YW5jZXMgYXMgdGhvc2UgYXJlIG5vdworICAgICAgICBGdW5jdGlvbnMgKGltcGxlbWVudGVkIGJ5
IHRoZSBKYXZhU2NyaXB0KS4gVGhvc2UgY29uc3RhbnRzIGFyZSBvbgorICAgICAgICB3aW5kb3cu
Tm9kZUZpbHRlciBzdGlsbC4gSSB2ZXJpZmllZCB0aGF0IHRoaXMgaXMgY29uc2lzdGFudCB3aXRo
CisgICAgICAgIEZpcmVmb3guCisKKyAgICAgICAgKiBmYXN0L2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLmh0bWw6CisgICAgICAgIFVwZGF0ZSB0aGUgY2hlY2sgdG8gdmVyaWZ5IHRoYXQgdGhlIHBy
b3RvdHlwZSBvZiBhIE5vZGVGaWx0ZXIgaW5zdGFuY2UKKyAgICAgICAgaXMgdGhlIEZ1bmN0aW9u
IHByb3RvdHlwZSwgbm90IHRoZSBOb2RlRmlsdGVyIHByb3RvdHlwZS4gTm9kZUZpbHRlcgorICAg
ICAgICBzaG91bGQgbm90IGhhdmUgYSBwcm90b3R5cGUgYXMgaXQgaXMgYSBjYWxsYmFjayBpbnRl
cmZhY2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sOgorICAgICAg
ICBQYXNzIG51bGwgZm9yIHRoZSBmaWx0ZXIgYXJndW1lbnQgaW5zdGVhZCBvZiAwLiBUaGUgZnVu
Y3Rpb25zIGV4cGVjdAorICAgICAgICBhIG51bGxhYmxlIE5vZGVGaWx0ZXIgb2JqZWN0LiBQYXNz
aW5nIDAgaGVyZSB0aHJvd3MuCisKKyAgICAgICAgKiBmYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRl
cmZhY2UtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lLiB3aW5kb3cuTm9kZUZpbHRl
ciBubyBsb25nZXIgaGFzIGEgcHJvdG90eXBlLiBUaGlzIGlzIGJlY2F1c2UKKyAgICAgICAgY2Fs
bGJhY2sgaW50ZXJmYWNlcyBhcmUgbm90IHN1cHBvc2VkIHRvIGhhdmUgYSBwcm90b3R5cGUgcHJv
cGVydHksIGFzCisgICAgICAgIHBlciB0aGUgV2ViIElETCBzcGVjaWZpY2F0aW9uOgorICAgICAg
ICBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpbnRlcmZhY2UtcHJvdG90eXBlLW9i
amVjdAorCisgICAgICAgIEkgYWxzbyB2ZXJpZmllZCB0aGF0IHRoaXMgaXMgY29uc2lzdGVudCB3
aXRoIEZpcmVmb3guCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50
LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNj
L2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICBSZWJhc2VsaW5lIFczQyB0ZXN0cy4gV2UgYXJlIG5vdyBwYXNzaW5nIGEgbG90IG9mIGNoZWNr
cyBiZWNhdXNlIHRoZXkKKyAgICAgICAgY2hlY2sgdGhhdCBUcmVlV2Fsa2VyLmZpbHRlciAvIE5v
ZGVJdGVyYXRvci5maWx0ZXIgaXMgYSBGdW5jdGlvbi4KKworICAgICAgICAqIHRyYXZlcnNhbC9z
aXplLXplcm8tcnVuLmh0bWw6CisgICAgICAgIEZpeCB0aGUgdGVzdCB0byBwYXNzIGEgbnVsbCBu
b2RlIGZpbHRlciBpbnN0ZWFkIG9mIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVC4KKyAgICAgICAg
VGhlIGNhbGwgd2FzIG5vdCB2YWxpZCBhbmQgbm93IGNvcnJlY3RseSB0aHJvd3MuIFRoZSBKUyBp
cyBzdXBwb3NlZCB0byBwYXNzCisgICAgICAgIGluIGEgbnVsbGFibGUgTm9kZUZpbHRlciwgbm90
IGEgY29uc3RhbnQuIEkgdGhpbmsgdGhlIGNvZGUgbWVhbnQgdG8gc2F5CisgICAgICAgICJmdW5j
dGlvbigpIHsgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsgfSIsIGhvd2V2ZXIsIEkg
dXNlZCBudWxsIGFzCisgICAgICAgIGl0IGlzIHNob3J0ZXIgYW5kIGVxdWl2YWxlbnQuCisKKzIw
MTUtMDgtMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBVbnJl
dmlld2VkLCBtYXJrIGh0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9FbGVtZW50LW1hdGNoZXMuaHRt
bCBhcyBmbGFreS4KIAogICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXIt
ZXhwZWN0ZWQudHh0CmluZGV4IGNhNWRhODQxYjc4MmIzM2ZmZTkzYmYwYTQ5Y2NmODdlMjQ1ZmRk
M2IuLmVlN2QyMWE2ZmZiNzk3NWYyZjkxMzBkNGIzYTQwYTQyNmM1YjQ0YWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1m
aWx0ZXItZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAgUEFTUyB3YWxrZXIuZmlyc3RD
aGlsZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwogUEFTUyB3YWxrZXIubmV4dE5v
ZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAogVGVzdGluZyB3aXRoIG9iamVj
dCBsYWNraW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2
ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyB3YWxrZXIuY3VycmVudE5v
ZGUuaWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHROb2Rl
IGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcK
IAogVGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlvbiBhY2NlcHROb2RlIHByb3Bl
cnR5Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4K
K1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKLVBBU1Mgd2Fs
a2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0ZXIgb2Jq
ZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fsa2VyLm5l
eHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHdh
bGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rpbmcgd2l0aCBmdW5jdGlvbiBo
YXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0YW50
cy1leHBlY3RlZC50eHQKaW5kZXggNDdmYzViMmJjODEzYmNmYTVhYzJlNzUxOTk1Zjk5MzY2Yjc3
MjNiOC4uYmZkNjU3MDU1NGEyNzk5MWQ1N2FkNTE4NjM4NjRlMjA5M2RlOTU1ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC0yNCwyMiArMjQsNiBA
QCBQQVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0lOSEVSSVQgc2hvdWxkIGJlIDAgYW5kIGlzLgog
UEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19QUklNSVRJVkVfVkFMVUUgc2hvdWxkIGJlIDEgYW5k
IGlzLgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNUIHNob3VsZCBiZSAyIGFu
ZCBpcy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIHNob3VsZCBiZSAzIGFuZCBp
cy4KLVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91bGQgYmUgMSBhbmQgaXMuCi1Q
QVNTOiBub2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzog
bm9kZUZpbHRlci5GSUxURVJfU0tJUCBzaG91bGQgYmUgMyBhbmQgaXMuCi1QQVNTOiBub2RlRmls
dGVyLlNIT1dfQUxMIHNob3VsZCBiZSA0Mjk0OTY3Mjk1IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX1RF
WFQgc2hvdWxkIGJlIDQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0NEQVRBX1NFQ1RJ
T04gc2hvdWxkIGJlIDggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0VOVElUWV9SRUZF
UkVOQ0Ugc2hvdWxkIGJlIDE2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19FTlRJVFkg
c2hvdWxkIGJlIDMyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19QUk9DRVNTSU5HX0lO
U1RSVUNUSU9OIHNob3VsZCBiZSA2NCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQ09N
TUVOVCBzaG91bGQgYmUgMTI4IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCBzaG91bGQgYmUgMjU2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9U
WVBFIHNob3VsZCBiZSA1MTIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
X0ZSQUdNRU5UIHNob3VsZCBiZSAxMDI0IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19O
T1RBVElPTiBzaG91bGQgYmUgMjA0OCBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuTm9kZUZpbHRlci5G
SUxURVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5Ob2RlRmlsdGVy
LkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgogUEFTUzogd2luZG93Lk5vZGVGaWx0
ZXIuRklMVEVSX1NLSVAgc2hvdWxkIGJlIDMgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFu
dHMuaHRtbAppbmRleCBkY2UyNTg4OTQzYWMwNThkYzJiMTljYTMwZWQ3MzAwYTc2OGYwZTAxLi4x
OTViYmNkOWU2NTc2ZTM0ODUxZjc3YjVlNTExOWNhODE4MGZmNzg3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9jb25zdGFudHMuaHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhLCBi
KQogICAgIHByaW50KG1lc3NhZ2UsIGNvbG9yKTsKIH0KIAotdmFyIGNzc1J1bGUsIGNzc1ZhbHVl
LCBub2RlRmlsdGVyLCBldmVudDsKK3ZhciBjc3NSdWxlLCBjc3NWYWx1ZSwgZXZlbnQ7CiAKIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpAQCAtNjYsMzQgKzY2
LDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzaG91bGRCZSgid2luZG93LkNTU1ZhbHVlLkNT
U19WQUxVRV9MSVNUIiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VT
VE9NIiwgMyk7CiAKLSAgICB2YXIgbm9kZUl0ZXJhdG9yOwotICAgIHRyeSB7Ci0gICAgICAgIG5v
ZGVJdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7IHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7
IH0sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmFsc2UpOwotICAgIH0gY2F0Y2goZSkgewotICAgICAgICBub2RlSXRlcmF0b3IgPSBuZXcgT2Jq
ZWN0KCk7Ci0gICAgfQotICAgIAotICAgIG5vZGVGaWx0ZXIgPSBub2RlSXRlcmF0b3IuZmlsdGVy
OwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQiLCAxKTsKLSAgICBzaG91
bGRCZSgibm9kZUZpbHRlci5GSUxURVJfUkVKRUNUIiwgMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVG
aWx0ZXIuRklMVEVSX1NLSVAiLCAzKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0FM
TCIsIDB4RkZGRkZGRkYpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRUxFTUVOVCIs
IDB4MDAwMDAwMDEpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFIiwg
MHgwMDAwMDAwMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19URVhUIiwgMHgwMDAw
MDAwNCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OIiwgMHgw
MDAwMDAwOCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFlfUkVGRVJFTkNF
IiwgMHgwMDAwMDAxMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFkiLCAw
eDAwMDAwMDIwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdfSU5T
VFJVQ1RJT04iLCAweDAwMDAwMDQwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0NP
TU1FTlQiLCAweDAwMDAwMDgwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5UIiwgMHgwMDAwMDEwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VF9UWVBFIiwgMHgwMDAwMDIwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVF9GUkFHTUVOVCIsIDB4MDAwMDA0MDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNI
T1dfTk9UQVRJT04iLCAweDAwMDAwODAwKTsKLQogICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZp
bHRlci5GSUxURVJfQUNDRVBUIiwgMSk7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5Ob2RlRmlsdGVy
LkZJTFRFUl9SRUpFQ1QiLCAyKTsKICAgICBzaG91bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIuRklM
VEVSX1NLSVAiLCAzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMuaHRtbAppbmRleCA5N2QyZmFkYmRlOWUxOGEwZTkwOWQ4MzcyOWZjN2U1OTc4Y2VkNmNlLi4w
YjM5ZGQwNzAzMzZlMWMzODk2ZDg3MGY5OTdkZTlmODk0N2FkMDVjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy5odG1sCkBAIC04NSw3ICs4NSw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgIHRyeSB7CiAgICAgICBub2RlRmlsdGVyID0gZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgZnVuY3Rp
b24gKCkge30sIGZhbHNlKS5maWx0ZXI7CiAgICAgfSBjYXRjaChlKSB7fQotICAgIHNob3VsZEJl
KCJ3aW5kb3cuTm9kZUZpbHRlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIs
IHRydWUpOworICAgIHNob3VsZEJlKCJGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihu
b2RlRmlsdGVyKSIsIHRydWUpOwogCiAgICAgb3JpZ2luYWxOb2RlUHJvdG90eXBlID0gd2luZG93
Lk5vZGUucHJvdG90eXBlOwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bm9kZS1maWx0ZXItZ2MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWdj
Lmh0bWwKaW5kZXggMDY0OWFkMjE4YmU5ZGZhYTE5NzNjZGM3NTYwNzE1ZjRiZWZmYWY4Zi4uYTIw
NGM0NGJmM2YzY2Q1ODA5YzRiMDJlYWUwYzQ0NTljMjcwNTYwMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sCkBAIC0zLDggKzMsOCBAQAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIAotdmFyIGl0ZXJhdG9y
ID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgMCwgZmFsc2UpOwotdmFyIHdhbGtlciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAwLCBmYWxzZSk7Cit2YXIgaXRl
cmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsLCBmYWxzZSk7Cit2YXIgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwsIGZhbHNl
KTsKIAogLy8gY3JlYXRlIGxvdHMgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIGdhcmJhZ2UgY29sbGVj
dGlvbgogIHZhciBpID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUt
ZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rl
LWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CmluZGV4IDVlNTQ2ODZmYWEzYzdhZjM2YWRi
NWIxMTZmODI1ZGIxY2M2ZjcyYzcuLmQ0YTk4YzhlNDI1MjUwOWQyZTNiNmUwYWFkYWE3ZmI2ZWY1
NmRiY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWludGVy
ZmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXIt
aW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMzksOCArMzksNiBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxl
OiBmYWxzZSwgdmFsdWU6IDBdCiAqIG5hbWUKIFtDb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFi
bGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiBOb2RlRmlsdGVyXQotKiBwcm90b3R5
cGUKLVtDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IGZh
bHNlLCB2YWx1ZTogW29iamVjdCBOb2RlRmlsdGVyUHJvdG90eXBlXV0KIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGQyMTg2
NDU5OWEzYzI5OGRiZjgxZDljMWU0MWZiZTQyNWQyZTdiNmIuLmU3N2M0YmIyZDNjYjc3YzYyNTlm
Zjg4MjQ3NGIzZjYwNWQ0NTA4MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTE4OTAsNDEgKzE4OTAsNDEg
QEAgUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlMKIFBBU1MgVHJlZVdhbGtlciBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRlci5TSE9XX0FM
TCwgbnVsbCwgZmFsc2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmlvdXNOb2RlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoOSkgCiBQQVNTIFRyZWVXYWxrZXIgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51
bGwsIGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHROb2RlIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoMTApIAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHBy
b3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQg
bm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQor
UEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNv
bnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50
IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUi
IHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1JFSkVDVCBvbiBp
bnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklM
VEVSX1JFSkVDVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5v
ZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQg
ZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRF
Ul9SRUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJ
TCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24gaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2
ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1df
QUxMIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0FMTCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6
IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0
ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNI
T1dfQUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGlu
dGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlM
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2
ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9X
X0FUVFJJQlVURSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFj
ZTogY29uc3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHBy
b3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAK
IFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBvbiBpbnRlcmZh
Y2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19URVhU
IG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBz
aG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3Qg
dHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19URVhUIG9uIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29u
c3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24gaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2
ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFu
dCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBvbiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBo
YXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1Mg
Tm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBvbiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlw
ZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19QUk9DRVNTSU5HX0lO
U1RSVUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJw
cm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlw
ZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlQgb24g
aW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNI
T1dfRE9DVU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBO
b2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVk
IGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9X
X0RPQ1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVy
IGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBFIG9uIGludGVyZmFjZSBvYmpl
Y3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX1RZ
UEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVy
IHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdv
dCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5U
X1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50
ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIG9uIGludGVyZmFjZSBvYmpl
Y3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZp
bHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxz
ZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NV
TUVOVF9GUkFHTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIG9iamVj
dCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3Vs
ZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
Ci1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShOb2RlKSBh
c3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJv
cGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6
IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQ
QVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShOb2RlKSAKIEZB
SUwgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIERPTVRva2VuTGlz
dCBleHBlY3RlZCAiW29iamVjdCBGdW5jdGlvbl0iIGJ1dCBnb3QgIltvYmplY3QgRE9NVG9rZW5M
aXN0Q29uc3RydWN0b3JdIgogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1j
cmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA3MmVhZDUzMjllZjkzZDE4ZmIzMjI2
MjAxODFlYmI3Mjg3Y2FlYzJlLi4zOGVmMDA4YzA0YmEwZmIwZTBjMmJmMTU0Mzk2MTQ2YzFhMDkx
MWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vbm9kZXMvRG9j
dW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0ZWQu
dHh0CkBAIC0zLDUgKzMsNSBAQCBQQVNTIFJlcXVpcmVkIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVl
V2Fsa2VyIHNob3VsZCBiZSByZXF1aXJlZC4KIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRzIHRvIGNy
ZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgxIHBhc3NlZCkuIAogUEFTUyBPcHRp
b25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDIg
cGFzc2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNo
b3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIG51bGwpLiAKLUZBSUwgT3B0aW9uYWwgYXJndW1l
bnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgzIHBhc3NlZCwgZnVu
Y3Rpb24pLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSBv
cHRpb25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4
cGVjdGVkLnR4dAppbmRleCA0ZDU5ODZjNGY0ZjE0NWJlYmQ0ZjQ1YmIwM2VkMzAzNjEzZDZjMGVj
Li44YTU2ZDdhNDI1MmQyZGYxZWVhOWM3Mzk2ODI0MmQ5ZmEzMWVlNjRlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9O
b2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0CkBAIC01LDc0MyArNSw3NDMgQEAgUEFTUyBjcmVhdGVO
b2RlSXRlcmF0b3IoKSB3aXRoIG51bGwgYXMgYXJndW1lbnRzCiBGQUlMIGNyZWF0ZU5vZGVJdGVy
YXRvcigpIHdpdGggdW5kZWZpbmVkIGFzIGFyZ3VtZW50cyBhc3NlcnRfZXF1YWxzOiB3aGF0VG9T
aG93IGV4cGVjdGVkIDQyOTQ5NjcyOTUgYnV0IGdvdCAwCiBQQVNTIFByb3BhZ2F0ZSBleGNlcHRp
b24gZnJvbSBmaWx0ZXIgZnVuY3Rpb24gCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hp
bGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RD
aGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxk
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
MCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1
bWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRE
aXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvYywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxF
bGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRU
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZG
RkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihj
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihj
b21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihj
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVu
dCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJh
ZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
dHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwg
MCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxl
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVt
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAw
eEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHRO
b2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHRO
b2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29t
bWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5
cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9t
L3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQKaW5kZXggOWFiZWQz
MGU3NGI1YTYwNDE1NzU5ODJlYTAyMGFhOGRjNTg0NTYyNi4uNjU1Nzg0ZGI1YmIyOGI4MTEwNzIz
ZjljNTQzZGE2ZjliZWVjOTA3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2MvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CkBA
IC0xLDc0MiArMSw3NDMgQEAKIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0u
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sx
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEx
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEx
LmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEx
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEx
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBU
ZXh0IG5vZGUgIlRyZWVXYWxrZXIgdGVzdHMiIGJ1dCBnb3QgbnVsbAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNp
YmxpbmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgIld4eXphYmNkIiBidXQgZ290IG51bGwKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRE
aXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5uZXh0
U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9kZSAiRWZnaGlqa2wiIGJ1dCBnb3QgQ29tbWVudCBu
b2RlIDwhLS0iQ29tbWVudGVyIiBhbmQgImNvbW1lbnRhdG9yIiBtZWFuIGRpZmZlcmVudCB0aGlu
Z3MuICBJJ3YuLi4tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBU
ZXh0IG5vZGUgImRvIHJlIG1pIGZhIHNvIGxhIHRpIiBidXQgZ290IENvbW1lbnQgbm9kZSA8IS0t
SSBtYWxpY2lvdXNseSBjcmVhdGVkIGEgY29tbWVudCB0aGF0IHdpbGwgYnJlYWsgaW5jYXV0aW91
Li4uLS0+CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxE
b2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxFbGVtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
VGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAw
eEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJh
ZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlw
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0
eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sx
XSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sx
XSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0
ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgIklqa2xtbm9wCisi
IGJ1dCBnb3QgQ29tbWVudCBub2RlIDwhLS1BbHBoYWJldCBzb3VwPy0tPgogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4
dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHRO
b2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9y
ZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1s
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2Zy
YWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2Zy
YWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdHJhdmVyc2FsL3NpemUtemVyby1ydW4uaHRtbCBiL0xheW91dFRlc3RzL3RyYXZlcnNhbC9z
aXplLXplcm8tcnVuLmh0bWwKaW5kZXggYzY3YjIyYjQ5MTUyYTRhOTZjYzQzYTRmYzQ5MDJjMjM1
ZWI3M2VkNy4uMzViNTRjNmQ0MTQ2YzJhMWFmYjA5NjljZDVhZDA5MTk0Yzc2Nzg2NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3NpemUtemVyby1ydW4uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy90cmF2ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1sCkBAIC0xMSw3ICsxMSw3IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgdGV4dG5vZGUyLm5vZGVWYWx1ZSA9ICIiOwogICAgIAogICAg
IHZhciByb290ID0gZG9jdW1lbnQuYm9keTsKLSAgICB2YXIgaXQgPSBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3Iocm9vdCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIE5vZGVGaWx0ZXIuRklM
VEVSX0FDQ0VQVCwgZmFsc2UpOworICAgIHZhciBpdCA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihyb290LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCwgZmFsc2UpOwogCiAgICAg
dmFyIG4gPSBpdC5uZXh0Tm9kZSgpOwogICAgIHdoaWxlKG4pIHsKQEAgLTI4LDQgKzI4LDQgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKIDxwPkEgY3Jhc2ggd291bGQgb2NjdXIgb24gaXRlcmF0aW9uIG92
ZXIgYSBub2RlIGNvbnRhaW5pbmcgc3VjaCBhIHJ1bi4gIE5vZGVJdGVyYXRvcnMsIHRoZSBpbm5l
clRleHQgcHJvcGVydHksIGFuZCBob3ZlcmluZyBvdmVyIGEgbGluayBhbGwgdXNlIGl0ZXJhdGlv
bi48L3A+CiA8cD5UaGlzIHRlc3RzIGl0ZXJhdGlvbiB1c2luZyBib3RoIHRoZSBpbm5lclRleHQg
cHJvcGVydHkgYW5kIE5vZGVJdGVyYXRvcnMuICBJdCBpcyBzdWNjZXNzZnVsIGlmIGl0IGRvZXNu
J3QgY3Jhc2ggU2FmYXJpLjwvcD4KIDxocj4KLTxhIGhyZWY9IiMiIGlkPSJub2RlIj5oZWxsbzwv
YT48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzxhIGhyZWY9IiMi
IGlkPSJub2RlIj5oZWxsbzwvYT48L2JvZHk+PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260319</attachid>
            <date>2015-08-31 14:38:41 -0700</date>
            <delta_ts>2015-08-31 15:05:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148415-20150831143824.patch</filename>
            <type>text/plain</type>
            <size>544435</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM2NjBjOGQ3MDliZWQ1
ODljMzU2ZTUxY2M4MDRjNmM5MDc3ZTI2My4uZDU1OWE1OGU2ZmE0YzlhNzZiODZjZTNlOTg2OGE5
M2MyZDcwNThlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NSBAQAorMjAxNS0wOC0zMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGVGaWx0ZXIgc2hvdWxk
IGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOb2RlRmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSwg
aW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLAorICAgICAgICBhcyBwZXIgdGhlIERPTSBz
cGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVy
ZmFjZS1ub2RlZmlsdGVyCisKKyAgICAgICAgT25lIG1ham9yIGRpZmZlcmVuY2UgaXMgdGhhdCBU
cmVlV2Fsa2VyLmZpbHRlciAvIE5vZGVJdGVyYXRvciBpcworICAgICAgICBzdXBwb3NlZCB0byBi
ZSBhIEZ1bmN0aW9uIC8gT2JqZWN0IChwYXNzZWQgYnkgSmF2YVNjcmlwdCksIGJ1dCBpdCB3YXMg
YQorICAgICAgICBKU05vZGVGaWx0ZXIgd3JhcHBlciBpbiBXZWJLaXQuIEFsc28sIHdpbmRvdy5O
b2RlRmlsdGVyIGlzIG5vdCBzdXBwb3NlZAorICAgICAgICB0byBoYXZlIGEgcHJvdG90eXBlIHBy
b3BlcnR5LgorCisgICAgICAgIFRoaXMgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIEZpcmVm
b3guIEhvd2V2ZXIsIENocm9tZSBzdGlsbCBoYXMgaXRzCisgICAgICAgIG93biBOb2RlRmlsdGVy
IHdyYXBwZXIuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgIGh0dHAvdGVzdHMvdzNjL2RvbS90
cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLmh0bWwgKHJlYmFzZWxpbmVkKQorICAgICAg
ICBodHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbCAocmViYXNlbGlu
ZWQpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgIEFkZCAvIFJlbW92ZSBmaWxlcyB0byB0aGUgcHJvamVjdCBmaWxlcy4KKwor
ICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlRmls
dGVyQ29uZGl0aW9uLmg6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbjo6YWNjZXB0Tm9kZSk6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ05vZGVG
aWx0ZXJDb25kaXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVy
Q29uZGl0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246
OmFjY2VwdE5vZGUpOgorICAgICAgICBEcm9wIEV4ZWNTdGF0ZSBwYXJhbWV0ZXIgYXMgaXQgaXMg
bm90IHVzZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgVXNlIE5hdGl2ZU5vZGVG
aWx0ZXIgdHlwZSBpbnN0ZWFkIG9mIE5vZGVGaWx0ZXIuIE5vZGVGaWx0ZXIgaXMgbm93CisgICAg
ICAgIGEgcHVyZSBpbnRlcmZhY2Ugd2l0aCAyIHN1YmNsYXNzZXM6IE5hdGl2ZU5vZGVGaWx0ZXIg
Zm9yIHRoZSBuYXRpdmUKKyAgICAgICAgYmluZGluZ3MgYW5kIEpTTm9kZUZpbHRlciBmb3IgdGhl
IEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcDoKKyAgICAgICAgRHJvcCBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGFzIGl0IHdhcyBy
ZW1vdmVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAg
VGhyb3cgYSBUeXBlRXJyb3IgaWYgdGhlIGNhbGxiYWNrIG9iamVjdCBiZWluZyBpbnZva2VkIGlz
IG5vdCBjYWxsYWJsZQorICAgICAgICBhbmQgZG9lcyBub3QgaGF2ZSBhIGNhbGxhYmxlIHByb3Bl
cnR5IHdpdGggdGhlIGV4cGVjdGVkIG5hbWUuIFRoZXJlCisgICAgICAgIGFyZSBzZXZlcmFsIGxh
eW91dCB0ZXN0cyBjb3ZlcmluZyB0aGlzIChpbmNsdWRpbmcgdzNjIG9uZXMpLiBQcmV2aW91c2x5
LAorICAgICAgICBOb2RlRmlsdGVyIHdhcyBub3QgdXNpbmcgdGhlIGdlbmVyaWMgSlNDYWxsYmFj
a0RhdGEgYW5kIHRoZSBleGNlcHRpb24KKyAgICAgICAgdGhyb3dpbmcgd2FzIGluIEpTTm9kZUZp
bHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZSgpIGluc3RlYWQuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICBEcm9wIHRo
aXMgY2xhc3MuIEpTTm9kZUZpbHRlciAvIEpTTm9kZUZpbHRlckN1c3RvbSBub3cgYmFzaWNhbGx5
IHRha2UKKyAgICAgICAgY2FyZSBvZiBhbGwgdGhpcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXI6
OmFjY2VwdE5vZGUpOgorICAgICAgICBDb21wbGV0ZSByZXdyaXRlLiBUaGlzIGZpbGUgaXMgbm93
IG9ubHkgdXNlZCB0byBwcm92aWRlIGEgY3VzdG9tCisgICAgICAgIGltcGxlbWVudGF0aW9uIGZv
ciBKU05vZGVGaWx0ZXI6OmFjY2VwdE5vZGUoKS4gVGhlIGNvZGUgaXMgc2ltaWxhciB0bworICAg
ICAgICB3aGF0IHdhcyBwcmV2aW91c2x5IGRvbmUgaW4gSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjph
Y2NlcHROb2RlKCkuCisgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIHJlYXNvbnMgd2UgbmVlZCBj
dXN0b20gYmluZGluZ3MgaGVyZToKKyAgICAgICAgLSBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGRv
ZXMgbm90IGhhbmRsZSB5ZXQgY2FsbGJhY2sgZnVuY3Rpb25zCisgICAgICAgICAgcmV0dXJuaW5n
IGFueXRoaW5nIGVsc2UgdGhhbiBhIGJvb2xlYW4uCisgICAgICAgIC0gVGhlIHNwZWNpZmljYXRp
b24gY2xlYXJseSBzdGF0ZXMgdGhhdCB3ZSBuZWVkIHRvIHJldGhyb3cgZXhjZXB0aW9ucworICAg
ICAgICAgIHRocm93biBieSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uIEhvd2V2ZXIsIHRoZSBkZWZh
dWx0IGJlaGF2aW9yIG9mCisgICAgICAgICAgb3VyIGJpbmRpbmdzIGlzIHRvIHNpbXBseSByZXBv
cnQgdGhlIGV4Y2VwdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG06CisgICAgICAgIE9ubHkgc2tpcCBmdW5jdGlvbnMgdGhhdCBoYXZlIHBh
cmFtZXRlcnMgdGhhdCBhcmUgY2FsbGJhY2sgKmZ1bmN0aW9ucyosCisgICAgICAgIG5vdCBjYWxs
YmFjayAqaW50ZXJmYWNlcyouIENhbGxiYWNrIGludGVyZmFjZXMgYXJlIHZlcnkgc2ltaWxhciB0
bworICAgICAgICBpbnRlcmZhY2VzIGFuZCB0aGUgZ2VuZXJhdG9yIGlzIGFibGUgdG8gaGFuZGxl
IHRoZW0uIFRoaXMgY2hhbmdlIHdhcworICAgICAgICBuZWVkZWQgZm9yIHRoZSBHVEsgYmluZGlu
Z3MgZ2VuZXJhdG9yIHdvdWxkIG5vIGxvbmdlciBnZW5lcmF0ZSBiaW5kaW5ncworICAgICAgICBm
b3IgRG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKCkgLyBEb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKCksIG5vdworICAgICAgICB0aGF0IE5vZGVGaWx0ZXIgaXMgYSBjYWxsYmFjayBpbnRlcmZh
Y2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyKToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IEdlbmVyYXRlIGEgdG9KUygpIGZ1bmN0aW9uIGZvciBjYWxsYmFjayBpbnRlcmZhY2VzIGFzIHdl
bGwuIFByZXZpb3VzbHksCisgICAgICAgIHdlIHdvdWxkIG9ubHkgZ2VuZXJhdGUgdGhvc2UgZm9y
IHJlZ3VsYXIgaW50ZXJmYWNlcy4gVGhpcyBpcyBuZWVkZWQKKyAgICAgICAgYmVjYXVzZSBOb2Rl
RmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSBhbmQgaXQgaXMgZXhwb3NlZCB0bwor
ICAgICAgICBKUyB2aWEgTm9kZUl0ZXJhdG9yLmZpbHRlciAvIFRyZWVXYWxrZXIuZmlsdGVyLiBU
aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbWVyZWx5IHJldHVybnMgdGhlIGNhbGxiYWNrIG9i
amVjdCAvIGZ1bmN0aW9uIGluc2lkZSB0aGUgSlNDYWxiYWNrRGF0YQorICAgICAgICBzbyB0aGUg
SlMgZ2V0cyBiYWNrIHRoZSBvYmplY3QgLyBmdW5jdGlvbiBpdCBwYXNzZWQgaW4uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICBUd2Vh
ayB0aGUgT2JqQyBiaW5kaW5ncyBnZW5lcmF0b3IgdG8gdXNlIE5hdGl2ZU5vZGVGaWx0ZXIgY2xh
c3MgaW5zdGVhZAorICAgICAgICBvZiBOb2RlRmlsdGVyIGFzIE5vZGVGaWx0ZXIgaXMgbm93IGEg
cHVyZSBpbnRlcmZhY2VzLiBOYXRpdmUgYmluZGluZ3MKKyAgICAgICAgYXJlIG5vdyBleHBlY3Rl
ZCB0byB1c2UgdGhlIE5hdGl2ZU5vZGVGaWx0ZXIgc3ViY2xhc3MgaW5zdGVhZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmg6
CisgICAgICAgIFJlYmFzZWxpbmUgYmluZGluZ3MgdGVzdHMgbm93IHRoYXQgd2UgZ2VuZXJhdGUg
dG9KUygpIGZ1bmN0aW9ucyBmb3IKKyAgICAgICAgY2FsbGJhY2sgZnVuY3Rpb25zIC8gaW50ZXJm
YWNlcy4KKworICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgIERyb3AgTm9k
ZUZpbHRlci5jcHAgYXMgaXQgd2FzIHJlbW92ZWQuCisKKyAgICAgICAgKiBkb20vTmF0aXZlTm9k
ZUZpbHRlci5jcHA6IEFkZGVkLgorICAgICAgICAqIGRvbS9OYXRpdmVOb2RlRmlsdGVyLmg6IEFk
ZGVkLgorICAgICAgICBJbnRyb2R1Y2UgbmV3IE5hdGl2ZU5vZGVGaWx0ZXIgY2xhc3Mgd2hpY2gg
c3ViY2xhc3NlcyB0aGUgTm9kZUZpbHRlcgorICAgICAgICBpbnRlcmZhY2UgYW5kIGlzIHVzZWQg
YnkgbmF0aXZlIGJpbmRpbmdzLiBJdHMgYWNjZXB0KCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
dXNlcyBOb2RlRmlsdGVyQ29uZGl0aW9uIG9iamVjdCBpbnRlcm5hbGx5IHRvIGZpbHRlciB0aGUg
bm9kZXMgaW5zdGVhZAorICAgICAgICBvZiBhIEpTIGNhbGxiYWNrLgorCisgICAgICAgICogZG9t
L05vZGVGaWx0ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyLmg6Cisg
ICAgICAgIE1ha2UgTm9kZUZpbHRlciBhIHB1cmUgaW50ZXJmYWNlLiBJdHMgcHJldmlvdXMgY29k
ZSBpcyBub3cgZWl0aGVyIGluCisgICAgICAgIE5hdGl2ZU5vZGVGaWx0ZXIgb2YgSlNOb2RlRmls
dGVyLgorCisgICAgICAgICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICBNYWtlIE5vZGVG
aWx0ZXIgYSBjYWxsYmFjayBpbnRlcmZhY2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNl
LAorICAgICAgICBhcyBwZXIgdGhlIERPTSBzcGVjaWZpY2F0aW9uLiBBbHNvIGhhdmUgaXRzIGFj
Y2VwdCgpIG9wZXJhdGlvbiByZXR1cm4KKyAgICAgICAgYW4gdW5zaWduZWQgc2hvcnQgaW5zdGVh
ZCBvZiBhIHNob3J0IHRvIG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uLgorICAgICAgICBUaGUgT2Jq
QyB2ZXJzaW9uIHN0aWxsIHJldHVybnMgYSBzaG9ydCB0aG91Z2ggZm9yIGJhY2t3YXJkCisgICAg
ICAgIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oOgorCisgICAgICAgICogZG9tL05v
ZGVJdGVyYXRvci5jcHA6CisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5oOgorICAgICAgICAq
IGRvbS9Ob2RlSXRlcmF0b3IuaWRsOgorICAgICAgICAqIGRvbS9UcmF2ZXJzYWwuY3BwOgorICAg
ICAgICAqIGRvbS9UcmF2ZXJzYWwuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5jcHA6Cisg
ICAgICAgICogZG9tL1RyZWVXYWxrZXIuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6
CisgICAgICAgIFN0b3AgcGFzc2luZyBFeGVjU3RhdGUgdG8gVHJlZVdhbGtlciAvIE5vZGVJdGVy
YXRvciBmdW5jdGlvbnMuIEl0IG5vCisgICAgICAgIGxvbmdlciBzZWVtcyB0byBiZSBuZWVkZWQg
YXMgd2Ugbm93IHVzZSB0aGUgSlNDYWxsYmFja0RhdGEgYWJzdHJhY3Rpb24KKyAgICAgICAgZm9y
IGludm9raW5nIEpTLgorCiAyMDE1LTA4LTMxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgUmFuZ2UuZGV0YWNoKCkgLyBOb2RlSXRlcmF0b3IuZGV0YWNoKCkgc2hv
dWxkIGJlIG5vLW9wcyBhcyBwZXIgdGhlIGxhdGVzdCBET00gc3BlY2lmaWNhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCA0NjA3MGUwMzFmNDZkNzVkMDE1NTUzNDJkMWZmNWJlN2RiZDhkMTI5
Li5lMzRjNjJlYmIxYTZlOGFjMzdjZDEwYzgwYjdiNTA2ZTg5ZWU3MDhhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTE2MSw3ICsxMTYxLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJp
bmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTmF2
aWdhdG9yQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKLSAgICBi
aW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCiAgICAgYmluZGluZ3MvanMvSlNO
b2RlRmlsdGVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZU9yU3RyaW5nLmNwcApAQCAtMTQzNiw4ICsxNDM1
LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9OYW1lTm9kZUxpc3QuY3BwCiAgICAg
ZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCiAgICAgZG9tL05hbWVkTm9kZU1hcC5jcHAKKyAg
ICBkb20vTmF0aXZlTm9kZUZpbHRlci5jcHAKICAgICBkb20vTm9kZS5jcHAKLSAgICBkb20vTm9k
ZUZpbHRlci5jcHAKICAgICBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKICAgICBkb20vTm9k
ZUl0ZXJhdG9yLmNwcAogICAgIGRvbS9Ob2RlT3JTdHJpbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAwNTA5NjRmYTc1YmE4Zjdk
OWVkNWMyN2E1OWI5YjBlNDRlMDhjYmQwLi5iNzYyZDZlYjgxNTI4MWMzOTFhNmNmMGU0YzY5Mzky
MGVjNmNkMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKQEAgLTE0NTU3LDIwICsxNDU1Nyw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE5vZGVGaWx0ZXIuY3BwIj4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1
ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCI+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xODQ3OSwyMCAr
MTg0NjUsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJp
bmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCI+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMjQ5Nyw3
ICsyMjQ2OSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU011
dGF0aW9uQ2FsbGJhY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXEpTTm9kZUN1c3RvbS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGlu
Z3NcanNcSlNOb2RlT3JTdHJpbmcuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJp
bmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1dvcmtlckdsb2JhbFNjb3BlQmFz
ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcU2NoZWR1bGVk
QWN0aW9uLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOGM0ODE3MzJmOGQ0YjAzODMxZGUyZTgyYWUx
Nzk4ODliY2Q4NjcwMy4uZTFmOWViMDE1MDAwMzhhZTliY2RkYWRjYmI2YTM5MDY5MWY1OGExOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycwpAQCAtNDQwNCw5ICs0NDA0LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5k
aW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCI+Ci0gICAgICA8Rmls
dGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDdXN0b20uY3BwIj4KICAgICAg
IDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTExNDk4
LDkgKzExNDk1LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpT
Tm9kZUN1c3RvbS5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9k
ZUZpbHRlckNvbmRpdGlvbi5oIj4KLSAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4K
LSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpz
XEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYmI0ZTczNGYwYWMyYTIzNzY1MTVkNWE4
YmI5ODY2M2ZmN2E2YzMzLi44ZTI0NDAwNTM2YjMzMWU3OTZhOWNjMmQ0NGE5OWUyNTA0OTJiNjM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yNjg0LDYgKzI2ODQsNyBAQAogCQk4MzAwMzBGNTFCN0QzM0I1MDBFRDNBQUMgLyog
R2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDAzMEYzMUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmlj
Q2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwICovOyB9OwogCQk4MzAwMzBGNjFCN0QzM0I1MDBFRDNB
QUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAwMzBGNDFCN0QzM0E2MDBFRDNBQUMgLyogR2Vu
ZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzMDAzMEY4MUI3RDNCNzgwMEVE
M0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODMwMDMwRjcxQjdEMzk4ODAwRUQzQUFDIC8qIENhY2hlZEhU
TUxDb2xsZWN0aW9uLmggKi87IH07CisJCTgzMDZFRkYxMUI4QkNFQTUwMDMxRDAzMiAvKiBOYXRp
dmVOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzMDZFRkYwMUI4QkNFN0MwMDMxRDAzMiAvKiBOYXRpdmVOb2RlRmlsdGVyLmNwcCAq
LzsgfTsKIAkJODMyQjg0MzQxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQjg0
MzMxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovOyB9OwogCQk4
MzJCODQzNjE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDM1MTlEOEU1
NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQk4MzQ4QkZB
QjFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDhCRkE5MUI4NTcyOTUwMDkxMkYzNiAv
KiBDbGFzc0NvbGxlY3Rpb24uY3BwICovOyB9OwpAQCAtMjY5Nyw2ICsyNjk4LDcgQEAKIAkJODM4
NkE5NzAxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzg2QTk2RTE5RjYxRTRGMDBFMUVDNEEg
LyogU3R5bGVCdWlsZGVyLmNwcCAqLzsgfTsKIAkJODM5QUFGRUMxQTBDMEM4RDAwNjA1Rjk5IC8q
IEhUTUxXQlJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzOUFBRkVBMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAg
Ki87IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUIxQTBD
MEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CisJCTgzQjJEMTc1MUI4QkNE
NkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5NTlFMTFCOEJDMjJCMDA0RDkzODUgLyogTmF0aXZl
Tm9kZUZpbHRlci5oICovOyB9OwogCQk4M0I5Njg3QjE5RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVC
dWlsZGVyQ29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0I5Njg3OTE5RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVCdWlsZGVyQ29udmVydGVy
LmggKi87IH07CiAJCTgzQzA1QTVBMUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hv
cnRoYW5kRnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzQzA1QTU4MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRo
YW5kRnVuY3Rpb25zLmNwcCAqLzsgfTsKIAkJODNDMDVBNUIxQTY4NjIxMjAwN0U1REVBIC8qIFN0
eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzA1QTU5MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggKi87IH07CkBAIC0yNzE4LDYgKzI3MjAsNyBAQAog
CQk4M0MxRDQzNDE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQy
MjE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggKi87IH07
CiAJCTgzQzFENDM1MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyMzE3OEQ1
QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oICovOyB9OwogCQk4M0MxRDQzNjE3
OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjQxNzhENUFCNDAwMTQxRTY4IC8q
IFNWR1BhdGhTZWdNb3ZldG9SZWwuaCAqLzsgfTsKKwkJODNGMTIwNkIxQjhDMTA0NzAwRDc1RjYz
IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0YxMjA2QTFCOEMxMDM2MDBENzVGNjMgLyogSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcCAqLzsgfTsKIAkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhC
eXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgfTsK
IAkJODQxOUQyQTgxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJB
NTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCAqLzsgfTsK
IAkJODQxOUQyQTkxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTYx
MjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovOyB9OwpAQCAt
MjkwOSw3ICsyOTEyLDYgQEAKIAkJODU0MkE3OTgwQUU1Qzk0MzAwREY1OERGIC8qIEpTU1ZHTnVt
YmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
NzREMUYzMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR051bWJlci5jcHAgKi87IH07CiAJCTg1NDJB
Nzk5MEFFNUM5NDQwMERGNThERiAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3NEQxRjIwQURFNjEy
MjAwNENCQTExIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggKi87IH07CiAJCTg1NDJB
NzlBMEFFNUM5NDQwMERGNThERiAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0RDFGMTBBREU2
MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovOyB9OwotCQk4
NTRGRTczMDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyNjBBMjI5N0JFMDA1OEQ3QUQg
LyogTm9kZUZpbHRlci5jcHAgKi87IH07CiAJCTg1NEZFNzMxMEEyMjk3QkUwMDU4RDdBRCAvKiBO
b2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NTRGRTcyNzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5oICovOyB9OwogCQk4NTRG
RTczMjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyODBBMjI5N0JFMDA1
OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi87IH07CiAJCTg1NEZFNzMzMEEyMjk3
QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyOTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9k
ZUZpbHRlckNvbmRpdGlvbi5oICovOyB9OwpAQCAtNTQ4OCw5ICs1NDkwLDYgQEAKIAkJQkNCMTZD
MjgwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjE2QzBGMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0LmggKi87IH07CiAJCUJDQjE2QzI5MDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OwogCQlCQ0IxNkMyQTA5NzlDM0JEMDA0Njc3NDEgLyog
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxv
YWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUJDQjc3MzYxMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNzczNUUwQzE3
ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi87IH07Ci0JCUJDQjc3
MzYyMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzVGMEMxNzg1M0QwMDEz
MkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLzsgfTsKLQkJQkNCNzczNjMwQzE3ODUz
RDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNO
b2RlRmlsdGVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNCOTJENEYxMjkzNTUwQjAwQzgzODdGIC8q
IEZvbnRCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNCOTJENEUxMjkzNTUwQjAwQzgzODdGIC8qIEZvbnRCYXNlbGluZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQkI4QUI5MTNGMUFG
QjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNCQjhBQjUxM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFs
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNC
QjhBQkExM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsVHJlZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCQjhBQjYxM0YxQUZCMDAwNzM0REYw
IC8qIFBPREludGVydmFsVHJlZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xMDA1Myw2ICsxMDA1Miw3IEBACiAJCTgzMDAzMEYzMUI3RDMzQTYw
MEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwMDMwRjQxQjdEMzNBNjAwRUQzQUFDIC8q
IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODMwMDMwRjcxQjdEMzk4ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZEhUTUxDb2xsZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMDZFRkYwMUI4QkNFN0MwMDMx
RDAzMiAvKiBOYXRpdmVOb2RlRmlsdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUg
LyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzNDhCRkE5MUI4NTcyOTUwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xhc3NDb2xsZWN0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDkwLDYgKzEwMDkwLDggQEAKIAkJ
ODNDMUQ0MjQxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aFNlZ01vdmV0b1JlbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4M0QyNkQzQzFBRkRDQzUwMDAxQjM4NzMgLyogQ2hpbGRO
b2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBDaGlsZE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4M0QyNkQzRDFBRkRDQzUwMDAxQjM4NzMgLyogUGFyZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGFyZW50
Tm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRTk1OUUxMUI4QkMyMkIw
MDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODNGMTIwNkExQjhDMTAzNjAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVGaWx0ZXJDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyog
U1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
UGF0aEJ5dGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTUx
MjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYg
LyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTAyNjUsNyArMTAyNjcsNiBAQAogCQk4NTQwNzU2NjBBRDZDQkY5MDA2MjBDNTcg
LyogRE9NSFRNTE9wdGlvbkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUhUTUxPcHRpb25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg1NDA3NTY3MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MT3B0aW9uRWxlbWVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0MDc1NjgwQUQ2Q0JGOTAwNjIw
QzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTUhUTUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU0RkU3MjYwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVGaWx0ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTRGRTcyNzBBMjI5N0JFMDA1OEQ3
QUQgLyogTm9kZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9k
ZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTRGRTcyODBBMjI5N0JF
MDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTm9kZUZpbHRlckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1NEZFNzI5MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29u
ZGl0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlRmlsdGVyQ29u
ZGl0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzA5NSw5ICsxMzA5Niw2
IEBACiAJCUJDQjE2QzBGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRYU0xTdHlsZVNoZWV0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IENhY2hlZFJlc291cmNlTG9hZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5jcHA7IH07CiAJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNCNzczNUUwQzE3
ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNCNzczNUYwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9k
ZUZpbHRlckNvbmRpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNO
b2RlRmlsdGVyQ29uZGl0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQjc3
MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjkyRDRFMTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250
QmFzZWxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEJhc2VsaW5l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkI4QUI1MTNGMUFGQjAwMDczNERG
MCAvKiBQT0RJbnRlcnZhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQT0RJ
bnRlcnZhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0JCOEFCNjEzRjFBRkIw
MDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBPREludGVydmFsVHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjEzOTEsNiArMjEzODksNyBAQAogCQkJCUJDQkZCNTNBMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RP
TVdpbmRvd1NoZWxsLmNwcCAqLywKIAkJCQlCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNE
T01XaW5kb3dTaGVsbC5oICovLAogCQkJCTY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RP
TVdyYXBwZXIuaCAqLywKKwkJCQk4M0YxMjA2QTFCOEMxMDM2MDBENzVGNjMgLyogSlNOb2RlRmls
dGVyQ3VzdG9tLmNwcCAqLywKIAkJCQk3QzkxQTM4RDFCNDk4QUJFMDAzRjlFRkEgLyogSlNOb2Rl
T3JTdHJpbmcuY3BwICovLAogCQkJCTdDOTFBMzhFMUI0OThBQkUwMDNGOUVGQSAvKiBKU05vZGVP
clN0cmluZy5oICovLAogCQkJCUYzRDQ2MTQ2MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFu
ZGxlci5jcHAgKi8sCkBAIC0yMTU3NCw3ICsyMTU3Myw2IEBACiAJCQkJMDczNzk0RTcxOUVFMzM1
QzAwRTVBMDQ1IC8qIEpTTmF2aWdhdG9yQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI2MDBDMTdB
QTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCAqLywKIAkJCQlCQzk0MzlDMjExNkNGNDk0
MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggKi8sCi0JCQkJQkNCNzczNjAwQzE3ODUzRDAwMTMy
QkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8sCiAJCQkJMUE3NTBERDMwQTkwRTcyOTAw
MEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI2MTBDMTdB
QTY3MDA1QzkwQTIgLyogSlNOb2RlTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJQUQyMEIxOEMxOEU5
RDIxNjAwNUE4MDgzIC8qIEpTTm9kZUxpc3RDdXN0b20uaCAqLywKQEAgLTIxODk1LDggKzIxODkz
LDYgQEAKIAkJCQk5M0I3MEQ0RTA5RUIwQzdDMDA5RDg0NjggLyogSlNFdmVudExpc3RlbmVyLmgg
Ki8sCiAJCQkJOTM1RjQ1NDAwRjdDM0I1RjAwRDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIu
Y3BwICovLAogCQkJCTkzNUY0NTQxMEY3QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3Rl
bmVyLmggKi8sCi0JCQkJQkNCNzczNUUwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNv
bmRpdGlvbi5jcHAgKi8sCi0JCQkJQkNCNzczNUYwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZp
bHRlckNvbmRpdGlvbi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSAiQ2FsbGJhY2sgT2JqZWN0cyI7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjM0MDcsMTAgKzIzNDAzLDExIEBACiAJ
CQkJODVBQ0E5RjkwQTlCNjMxMDAwNjcxRTkwIC8qIE5hbWVkTm9kZU1hcC5pZGwgKi8sCiAJCQkJ
QTgxODcyMTkwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVOb2RlTGlzdC5jcHAgKi8sCiAJCQkJQTgx
ODcyMTMwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVOb2RlTGlzdC5oICovLAorCQkJCTgzMDZFRkYw
MUI4QkNFN0MwMDMxRDAzMiAvKiBOYXRpdmVOb2RlRmlsdGVyLmNwcCAqLywKKwkJCQk4M0U5NTlF
MTFCOEJDMjJCMDA0RDkzODUgLyogTmF0aXZlTm9kZUZpbHRlci5oICovLAogCQkJCUE4QzRBN0VF
MDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCAqLywKIAkJCQkxNDExNUI1MTA5Rjg0QjcxMDBD
QTRGQzEgLyogTm9kZS5oICovLAogCQkJCTE0REMwRDBCMDlGRUNGQTQwMDdCMDIzNSAvKiBOb2Rl
LmlkbCAqLywKLQkJCQk4NTRGRTcyNjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAg
Ki8sCiAJCQkJODU0RkU3MjcwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuaCAqLywKIAkJ
CQkxNDExNUFGOTA5Rjg0N0Q2MDBDQTRGQzEgLyogTm9kZUZpbHRlci5pZGwgKi8sCiAJCQkJODU0
RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovLApAQCAt
MjQ3NzIsNiArMjQ3NjksNyBAQAogCQkJCTg1M0JGNERCMEFCQjZCNTUwMDg2NDdCQiAvKiBET01O
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQwNzUyNjBBRDZDNjY3MDA2MjBDNTcgLyogRE9N
Tm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVCNDk4RkIwQURCMzQwMjAwOTI1Q0JC
IC8qIERPTU5vZGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNCMkQxNzUxQjhCQ0Q2
QTAwQTAyRTQ3IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NTI2
QzM3MEFCMEExN0UwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg1MEI0MUMyMEFEOUU3RTcwMEE2RUQ0RiAvKiBET01Ob2RlSXRlcmF0b3JJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODVBQ0FBOEQwQTlCNzU5QzAwNjcxRTkwIC8qIERPTU5vZGVM
aXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjU0LDcgKzI1NjUyLDYgQEAKIAkJCQkwNzNCRTM0
RDE3RDE3RTdBMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQzOUMzMTE2Q0Y0OTQwMDQ4Qzc1MCAvKiBKU05vZGVD
dXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTE1QjczMDlGODRDRDYwMENBNEZDMSAvKiBK
U05vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQjc3MzYyMEMxNzg1M0QwMDEzMkJB
NCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzUwRDhF
MEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNEOUMyQzMwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUFEMjBCMThEMThFOUQyMzcwMDVBODA4MyAvKiBKU05vZGVMaXN0Q3VzdG9tLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI4OTA1LDYgKzI4OTAyLDcgQEAKIAkJCQlCQzJFRDZCQzBDNkJEMkYwMDA5
MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RTlEMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
RjdFOUMzMTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJODNGMTIwNkIxQjhDMTA0NzAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUU5RjEyQjAzRUUxMDAzQTU4M0EgLyog
SlNBdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRFQUFBRjMx
MkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZEQTE1RUE1MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQ29udGV4
dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5MTgyLDYgKzI5MTgwLDcgQEAKIAkJCQk1MTFFRjJE
MTE3RjBGREYxMDBFNEZBMTYgLyogSlNJREJPYmplY3RTdG9yZUN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTFFRjJDODE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJPcGVuREJSZXF1ZXN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkM5MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lE
QlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODMwNkVGRjExQjhCQ0VBNTAwMzFEMDMy
IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRUYyQ0ExN0Yw
RkQzNTAwRTRGQTE2IC8qIEpTSURCVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTExRUYyQ0IxN0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDNkM0OUYzMEQ3REJBMDUwMEZGQTU1OCAvKiBKU0ltYWdlQ29u
c3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTI0Nyw4ICsyOTI0Niw2IEBACiAJCQkJ
MTREQzBEMzcwOUZFRDA3MzAwN0IwMjM1IC8qIEpTTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0Q5QzI2NDBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0MTE1QjcyMDlGODRDRDYwMENBNEZDMSAvKiBKU05vZGVGaWx0ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQkNCNzczNjEwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0I3NzM2MzBDMTc4NTNEMDAxMzJC
QTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzUwRDhE
MEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTc1MERENDBBOTBFNzI5MDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyQzIwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTm9kZUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTc4NSw3ICsyOTc4Miw2IEBACiAJCQkJMjY3NzI2MDAx
QTVCM0FEOTAwM0MyNEREIC8qIE5GQVRvREZBLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUY0
M0UwMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEM0QTgwMDA5RDU2MzI3MDAwM0FDOEQgLyogTm9kZS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQk4NTRGRTczMDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NTRGRTczMjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTczNDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9k
ZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRGRkMwMjJCMTY0M0I3MTAwMDRFMTYz
OCAvKiBOb2RlUmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRp
b24uY3BwCmluZGV4IGFkZmQ4YzE4OThmMzc1NWQ0ZjU5NzJkOTIyN2FkY2I1OTdkMWQ3YWYuLmUw
YWJiN2M2NGUxZjA2NDE3OWUwMDliNWZkOWQzMTdjZjdhYTk0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJD
b25kaXRpb24uY3BwCkBAIC0yOSw3ICsyOSw3IEBAIEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
Ojp+R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24oKQogICAgIGdfb2JqZWN0X3NldF9kYXRhKEdf
T0JKRUNUKG1fZmlsdGVyLmdldCgpKSwgIndlYmtpdC1jb3JlLW5vZGUtZmlsdGVyIiwgbnVsbHB0
cik7CiB9CiAKLXNob3J0IEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpT
Qzo6RXhlY1N0YXRlKiwgTm9kZSogbm9kZSkgY29uc3QKK3Nob3J0IEdPYmplY3ROb2RlRmlsdGVy
Q29uZGl0aW9uOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFub2Rl
KQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJD
b25kaXRpb24uaAppbmRleCA2MTI4MDI1ZmZjODdjYWEzZDEyMTY2YjNhOWY4ODhiNWVhZTA5OThj
Li41MzY2YTUzOGM1NDFhOTM5MThiOTkxYmNiNzdmZGM4YzI4MmU3NDQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRl
ckNvbmRpdGlvbi5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24oZmlsdGVyKSk7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNv
bnN0OworICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Qgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CiAgICAgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24oV2ViS2l0RE9NTm9k
ZUZpbHRlciogZmlsdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKaW5kZXggMjU4ZmM0YWQ4ZjlkYmQzZDA2NjRh
NDNjM2QwZjQ5N2M0MGY4YjVkYi4uZDgwZmU3MDJmMTQ1MTcxMDgxNWYyNzUxNmJhMmY0MTgxMjBk
ZjI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRE
T01Ob2RlRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dl
YktpdERPTU5vZGVGaWx0ZXIuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiV2ViS2l0
RE9NTm9kZUZpbHRlci5oIgogCiAjaW5jbHVkZSAiR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24u
aCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCisjaW5jbHVkZSAiTmF0aXZlTm9kZUZpbHRlci5o
IgogI2luY2x1ZGUgIldlYktpdERPTU5vZGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01Ob2RlRmls
dGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC03Miw3ICs3Miw3IEBA
IFJlZlB0cjxXZWJDb3JlOjpOb2RlRmlsdGVyPiBjb3JlKFdlYktpdERPTU5vZGVGaWx0ZXIqIG5v
ZGVGaWx0ZXIpCiAKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZUZpbHRlcj4gY29yZU5vZGVGaWx0
ZXIgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlRmlsdGVyKj4oZ19vYmplY3RfZ2V0X2RhdGEo
R19PQkpFQ1Qobm9kZUZpbHRlciksICJ3ZWJraXQtY29yZS1ub2RlLWZpbHRlciIpKTsKICAgICBp
ZiAoIWNvcmVOb2RlRmlsdGVyKSB7Ci0gICAgICAgIGNvcmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6
Tm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6OkdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uOjpj
cmVhdGUobm9kZUZpbHRlcikpOworICAgICAgICBjb3JlTm9kZUZpbHRlciA9IFdlYkNvcmU6Ok5h
dGl2ZU5vZGVGaWx0ZXI6OmNyZWF0ZShXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlv
bjo6Y3JlYXRlKG5vZGVGaWx0ZXIpKTsKICAgICAgICAgbm9kZUZpbHRlck1hcCgpLmFkZChjb3Jl
Tm9kZUZpbHRlci5nZXQoKSwgbm9kZUZpbHRlcik7CiAgICAgICAgIGdfb2JqZWN0X3dlYWtfcmVm
KEdfT0JKRUNUKG5vZGVGaWx0ZXIpLCBub2RlRmlsdGVyT2JqZWN0RGVzdHJveWVkQ2FsbGJhY2ss
IGNvcmVOb2RlRmlsdGVyLmdldCgpKTsKICAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpF
Q1Qobm9kZUZpbHRlciksICJ3ZWJraXQtY29yZS1ub2RlLWZpbHRlciIsIGNvcmVOb2RlRmlsdGVy
LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGlu
Z3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwCmluZGV4IDFiNWU5NWIyYzdiNGU1NTFiYWJjMjk3OTEwYjQ5YmE3M2IyZWFhM2Eu
LmI1YzVmZjJlNTYwMDVmN2NmMzYwMzc0NDhkNTlhNmVlYjNiYTVkMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMTE0LDcg
KzExNCw2IEBACiAjaW5jbHVkZSAiSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlQ3VzdG9tLmNw
cCIKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIgogI2luY2x1ZGUgIkpTTm9k
ZUZpbHRlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTTm9kZUxpc3RDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCmluZGV4IGQ5OGU2MzI2Y2IzZTQ5Mzg4YjUyMzY3ZTRm
NjI5NDA3YzhjN2E2MTMuLmM0N2VmNDBmMGExNmQ5N2NiODVhMWU1NDBlZDEyNTFmZGU3MGUzYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGVJbnN0
cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbi5oPgogCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogICAgIApAQCAtNjQsMTQgKzY1LDE4IEBAIEpTVmFsdWUgSlNDYWxsYmFj
a0RhdGE6Omludm9rZUNhbGxiYWNrKEpTVmFsdWUgdGhpc1ZhbHVlLCBNYXJrZWRBcmd1bWVudEJ1
ZmZlciYKICAgICAgICAgY2FsbFR5cGUgPSBjYWxsYmFjaygpLT5tZXRob2RUYWJsZSgpLT5nZXRD
YWxsRGF0YShjYWxsYmFjaygpLCBjYWxsRGF0YSk7CiAgICAgfQogICAgIGlmIChjYWxsVHlwZSA9
PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgaWYgKG1ldGhvZCA9PSBDYWxsYmFja1R5cGU6OkZ1
bmN0aW9uKQorICAgICAgICBpZiAobWV0aG9kID09IENhbGxiYWNrVHlwZTo6RnVuY3Rpb24pIHsK
KyAgICAgICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gRXhjZXB0aW9uOjpjcmVhdGUoZXhlYy0+
dm0oKSwgY3JlYXRlVHlwZUVycm9yKGV4ZWMpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVl
KCk7CisgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIWZ1bmN0aW9uTmFtZS5pc051bGwoKSk7
CiAgICAgICAgIGZ1bmN0aW9uID0gY2FsbGJhY2soKS0+Z2V0KGV4ZWMsIGZ1bmN0aW9uTmFtZSk7
CiAgICAgICAgIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKLSAg
ICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkKKyAgICAgICAgaWYgKGNhbGxUeXBl
ID09IENhbGxUeXBlTm9uZSkgeworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBFeGNl
cHRpb246OmNyZWF0ZShleGVjLT52bSgpLCBjcmVhdGVUeXBlRXJyb3IoZXhlYykpOwogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIEFTU0VSVCgh
ZnVuY3Rpb24uaXNFbXB0eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3YjQxMTlhNWE1ZDBiNzI4OWYzZTEzNjhkOTEwZDc2YTc5OGQ4Yjc3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCww
IEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29t
KQotICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCi0KLSNpbmNsdWRl
ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJKU05vZGUuaCIKLSNpbmNsdWRl
ICJKU05vZGVGaWx0ZXIuaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCi0jaW5jbHVkZSA8cnVu
dGltZS9FcnJvci5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotSlNOb2RlRmlsdGVyQ29uZGl0aW9u
OjpKU05vZGVGaWx0ZXJDb25kaXRpb24oVk0mLCBOb2RlRmlsdGVyKiBvd25lciwgSlNWYWx1ZSBm
aWx0ZXIpCi0gICAgOiBtX2ZpbHRlcihmaWx0ZXIuaXNPYmplY3QoKSA/IFdlYWs8SlNPYmplY3Q+
KGpzQ2FzdDxKU09iamVjdCo+KGZpbHRlciksICZtX3dlYWtPd25lciwgb3duZXIpIDogbnVsbHB0
cikKLXsKLX0KLQotc2hvcnQgSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBOb2RlKiBmaWx0ZXJOb2RlKSBjb25zdAotewotICAgIEpTTG9ja0hv
bGRlciBsb2NrKGV4ZWMpOwotCi0gICAgaWYgKCFtX2ZpbHRlcikKLSAgICAgICAgcmV0dXJuIE5v
ZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0KLSAgICAvLyBFeGVjIGlzIG51bGwgaWYgd2UndmUg
YmVlbiBjYWxsZWQgZnJvbSBhIG5vbi1KYXZhU2NyaXB0IGxhbmd1YWdlIGFuZCB0aGUgZG9jdW1l
bnQKLSAgICAvLyBpcyBubyBsb25nZXIgYWJsZSB0byBydW4gSmF2YVNjcmlwdCAoZS5nLiwgaXQn
cyBkaXNjb25uZWN0ZWQgZnJvbSBpdHMgZnJhbWUpLgotICAgIGlmICghZXhlYykKLSAgICAgICAg
cmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0KLSAgICBKU1ZhbHVlIGZpbHRlciA9
IG1fZmlsdGVyLmdldCgpOwotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNh
bGxUeXBlID0gZ2V0Q2FsbERhdGEoZmlsdGVyLCBjYWxsRGF0YSk7Ci0gICAgaWYgKGNhbGxUeXBl
ID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIuZ2V0KGV4ZWMsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImFjY2VwdE5vZGUiKSk7Ci0gICAgICAgIGNhbGxU
eXBlID0gZ2V0Q2FsbERhdGEoZmlsdGVyLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlmIChjYWxsVHlw
ZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRp
b24oZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb2RlRmlsdGVyIG9iamVjdCBkb2VzIG5v
dCBoYXZlIGFuIGFjY2VwdE5vZGUgZnVuY3Rpb24iKSk7Ci0gICAgICAgICAgICByZXR1cm4gTm9k
ZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIE1hcmtlZEFy
Z3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgLy8gRklYTUU6IFRoZSBub2RlIHNob3VsZCBoYXZlIHRo
ZSBwcm90b3R5cGUgY2hhaW4gdGhhdCBjYW1lIGZyb20gaXRzIGRvY3VtZW50LCBub3QKLSAgICAv
LyB3aGF0ZXZlciBwcm90b3R5cGUgY2hhaW4gbWlnaHQgYmUgb24gdGhlIHdpbmRvdyB0aGlzIGZp
bHRlciBjYW1lIGZyb20uIEJ1ZyAyNzY2MgotICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgZmlsdGVyTm9kZSkpOwotICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJ
TFRFUl9SRUpFQ1Q7Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTQzo6Y2FsbChleGVjLCBmaWx0
ZXIsIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV9maWx0ZXIuZ2V0KCksIGFyZ3MpOwotICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9S
RUpFQ1Q7Ci0KLSAgICBpbnQgaW50UmVzdWx0ID0gcmVzdWx0LnRvSW50MzIoZXhlYyk7Ci0gICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklM
VEVSX1JFSkVDVDsKLQotICAgIHJldHVybiBpbnRSZXN1bHQ7Ci19Ci0KLWJvb2wgSlNOb2RlRmls
dGVyQ29uZGl0aW9uOjpXZWFrT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQotewotICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChjb250ZXh0KTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTZhMWJlMzE3ODk5YTVkMTFhZjczMjJlMDkyNmY2NDIxMTY4MDNjMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAg
QEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20p
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYgSlNO
b2RlRmlsdGVyQ29uZGl0aW9uX2gKLSNkZWZpbmUgSlNOb2RlRmlsdGVyQ29uZGl0aW9uX2gKLQot
I2luY2x1ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKLSNpbmNsdWRlIDxoZWFwL1dlYWsuaD4K
LSNpbmNsdWRlIDxoZWFwL1dlYWtJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NJbmxp
bmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgTm9kZTsKLSAg
ICBjbGFzcyBOb2RlRmlsdGVyOwotCi0gICAgY2xhc3MgSlNOb2RlRmlsdGVyQ29uZGl0aW9uIDog
cHVibGljIE5vZGVGaWx0ZXJDb25kaXRpb24gewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFJlZjxKU05vZGVGaWx0ZXJDb25kaXRpb24+IGNyZWF0ZShKU0M6OlZNJiB2bSwgTm9kZUZpbHRl
ciogb3duZXIsIEpTQzo6SlNWYWx1ZSBmaWx0ZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEpTTm9kZUZpbHRlckNvbmRpdGlvbih2bSwgb3duZXIsIGZpbHRl
cikpOwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBKU05vZGVGaWx0ZXJDb25k
aXRpb24oSlNDOjpWTSYsIE5vZGVGaWx0ZXIqIG93bmVyLCBKU0M6OkpTVmFsdWUgZmlsdGVyKTsK
LQotICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2Rl
KikgY29uc3Q7Ci0KLSAgICAgICAgY2xhc3MgV2Vha093bmVyIDogcHVibGljIEpTQzo6V2Vha0hh
bmRsZU93bmVyIHsKLSAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNs
b3RWaXNpdG9yJik7Ci0gICAgICAgIH07Ci0gICAgICAgIFdlYWtPd25lciBtX3dlYWtPd25lcjsK
LSAgICAgICAgbXV0YWJsZSBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9maWx0ZXI7Ci0gICAg
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZp
bHRlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJD
dXN0b20uY3BwCmluZGV4IDcwNTMzZGIxNjQ5MGYzMDM1Mjg4YjBlMzE2MTA1ZWUzZTdmNjQ4MDAu
LjlmMzAwY2FjMjhhYWZhNTZlY2Q3YzNmYjQzNDc5YWM4OWMyYzQyYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAs
NDEgKzEwLDU4IEBACiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm9k
ZUZpbHRlci5oIgogCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisjaW5jbHVk
ZSAiSlNDYWxsYmFja0RhdGEuaCIKKyNpbmNsdWRlICJKU05vZGUuaCIKKyNpbmNsdWRlICJOb2Rl
RmlsdGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU05vZGVGaWx0ZXI6OnZp
c2l0QWRkaXRpb25hbENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAg
dmlzaXRvci5hZGRPcGFxdWVSb290KCZpbXBsKCkpOwotfQordXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAotUmVmUHRyPE5vZGVGaWx0ZXI+IEpTTm9kZUZpbHRlcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTVmFsdWUgdmFsdWUpCisvLyBGSVhNRTogVGhlIGJpbmRpbmdzIGdlbmVyYXRvciBp
cyBjdXJyZW50bHkgbm90IGFibGUgdG8gZ2VuZXJhdGUKKy8vIGNhbGxiYWNrIGZ1bmN0aW9uIGNh
bGxzIGlmIHRoZXkgcmV0dXJuIHNvbWV0aGluZyBlbHNlIHRoYW4gYQorLy8gYm9vbGVhbi4KK3Vp
bnQxNl90IEpTTm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKQogewotICAgIGlmICh2
YWx1ZS5pbmhlcml0cyhKU05vZGVGaWx0ZXI6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiAmSlND
Ojpqc0Nhc3Q8SlNOb2RlRmlsdGVyKj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpOworICAgIFJl
ZjxKU05vZGVGaWx0ZXI+IHByb3RlY3QoKnRoaXMpOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2so
bV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+dm0oKSk7CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBt
X2RhdGEtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2Jq
ZWN0KCksIG5vZGUpKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOworCisgICAgTmFrZWRQdHI8RXhjZXB0aW9u
PiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBKU1ZhbHVlIHZhbHVlID0gbV9kYXRhLT5pbnZva2VD
YWxsYmFjayhhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpGdW5jdGlvbk9yT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJhY2NlcHROb2RlIiksIHJldHVybmVk
RXhjZXB0aW9uKTsKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgLy8gUmV0
aHJvdyBleGNlcHRpb24uCisgICAgICAgIGV4ZWMtPnZtKCkuc2V0RXhjZXB0aW9uKHJldHVybmVk
RXhjZXB0aW9uKTsKKworICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsK
KyAgICB9CiAKLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHVpbnQxNl90IHJlc3VsdCA9IHRvVUludDE2KGV4ZWMsIHZhbHVlLCBOb3JtYWxD
b252ZXJzaW9uKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
biBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwogCi0gICAgUmVmUHRyPE5vZGVGaWx0ZXI+IHJl
c3VsdCA9IE5vZGVGaWx0ZXI6OmNyZWF0ZSgpOwotICAgIHJlc3VsdC0+c2V0Q29uZGl0aW9uKEpT
Tm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKHZtLCByZXN1bHQuZ2V0KCksIHZhbHVlKSk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDNiZTE1NjM2YTVhOGRmYTNi
NTcxY2NhODQxYmQyZDMwNWFlZGU2MjkuLjZjMzc3NjFiMTNlNjc5YWIwYzZiMWRkZWZkMDY3N2Nk
Yzk4YWNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05v
ZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09i
akNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2JqQ05vZGVGaWx0ZXJDb25k
aXRpb24oZmlsdGVyKSk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2Vw
dE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgc2hv
cnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBPYmpD
Tm9kZUZpbHRlckNvbmRpdGlvbihpZCA8RE9NTm9kZUZpbHRlcj4gZmlsdGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24u
bW0KaW5kZXggMjRiNTE5MmZmNDEzMDA1MzZhMTVhMDYwZjE5MjVmYWM1N2ExMzNjMi4uOTg0YTFh
YWE1Zjk1NWRkMTNlYzI0MjQ1NzE1Mjc5YWI5YmM1NmY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1tCkBAIC0z
Nyw3ICszNyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc2hvcnQgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoRXhlY1N0YXRlKiwg
Tm9kZSogbm9kZSkgY29uc3QKK3Nob3J0IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHRO
b2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4g
Tm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IGJlNWQwNjVkMDA0
ZDBmOTgwNmI4MDAzMzY3ZjFkNDAxNWY2NjAzNTIuLjk1ZmMxMDFmNDNlN2NlYThmYTFjNmFhNDA4
MmU2OTBkZDhhZmQ5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtMzA1LDcgKzMwNSw3IEBAIHN1YiBT
a2lwRnVuY3Rpb24gewogICAgICMgc2VxdWVuY2U8VD4gcGFyYW1ldGVycywgYmVjYXVzZSB0aGlz
IGNvZGUgZ2VuZXJhdG9yIGRvZXNuJ3Qga25vdyBob3cgdG8gYXV0by1nZW5lcmF0ZQogICAgICMg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBvciBzZXF1ZW5jZTxUPi4gU2tpcCBFdmVudExpc3RlbmVy
cyBiZWNhdXNlIHRoZXkgYXJlIGhhbmRsZWQgZWxzZXdoZXJlLgogICAgIGZvcmVhY2ggbXkgJHBh
cmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCRwYXJhbS0+dHlwZSkgfHwKKyAgICAgICAgaWYgKCRj
b2RlR2VuZXJhdG9yLT5Jc0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlKCRwYXJhbS0+dHlw
ZSkgfHwKICAgICAgICAgICAgICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNsYW1wIn0g
fHwKICAgICAgICAgICAgICRwYXJhbS0+dHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIg
fHwKICAgICAgICAgICAgICRwYXJhbS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgfHwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5k
ZXggODg1YzBlYzIyYjFjZWNkNjIxODgzNTRhOWViNjlmMGQ2YjUxNjFhNS4uNGY2ZWUyOTllNzU2
OGIxNDE3N2UyNzJjYzUwZjk4NTFmYWUzMTViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0NzUsNiArMzQ3NSw4IEBA
IHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAgICAgIyBEZXN0cnVjdG9yCiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIH4kY2xhc3NOYW1lKCk7XG4iKTsKIAorICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDYWxsYmFja0RhdGEqIGNhbGxiYWNrRGF0YSgpIHsg
cmV0dXJuIG1fZGF0YTsgfVxuIik7CisKICAgICAjIENvbnN0cnVjdG9yIG9iamVjdCBnZXR0ZXIu
CiAgICAgaWYgKEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfSkgewogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpOwpAQCAtMzUxNiw2ICszNTE4LDEwIEBAIHN1
YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBK
U0NhbGxiYWNrRGF0YSogbV9kYXRhO1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn07
XG5cbiIpOwogCisgICAgIyB0b0pTKCkuCisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW50ZXJm
YWNlTmFtZSopO1xuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImlubGluZSBKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgJGludGVyZmFjZU5hbWUmIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCAmaW1wbCk7IH1cblxuIik7CisKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifSAv
LyBuYW1lc3BhY2UgV2ViQ29yZVxuXG4iKTsKICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAk
Y29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNlKTsKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5c
biIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTM2ODksNiArMzY5NSwxNCBAQCBzdWIgR2Vu
ZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAjIHRv
SlMoKSBpbXBsZW1lbnRhdGlvbi4KKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VO
YW1lKiBpbXBsKVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWltcGwgfHwgIXN0YXRpY19jYXN0PCR7Y2xhc3NOYW1l
fSY+KCppbXBsKS5jYWxsYmFja0RhdGEoKSlcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICByZXR1cm4ganNOdWxsKCk7XG5cbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHJldHVybiBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0mPigqaW1wbCkuY2FsbGJhY2tEYXRh
KCktPmNhbGxiYWNrKCk7XG5cbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CisK
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxufVxuIik7CiAgICAgbXkgJGNvbmRpdGlvbmFsU3Ry
aW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFj
ZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3Ry
aW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggYzViODc3OTM5Njc1
NWM0YWQwM2NlYjM4MzY4YzFmMjNlOTcyY2FhNi4uNjM1ZDEzMzMzNjlhOTMwZTRlMWVlMDg2ZTc1
NjZhZTE4OTJhM2Q4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBAIC00MjAsNiArNDIwLDcgQEAgc3ViIEdldEltcGxD
bGFzc05hbWUKIHsKICAgICBteSAkbmFtZSA9IHNoaWZ0OwogCisgICAgcmV0dXJuICJOYXRpdmVO
b2RlRmlsdGVyIiBpZiAkbmFtZSBlcSAiTm9kZUZpbHRlciI7CiAgICAgcmV0dXJuICJET01XaW5k
b3ciIGlmICRuYW1lIGVxICJBYnN0cmFjdFZpZXciOwogICAgIHJldHVybiAkbmFtZTsKIH0KQEAg
LTY5Myw3ICs2OTQsNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiAgICAgfQogCiAgICAgaWYg
KCR0eXBlIGVxICJOb2RlRmlsdGVyIikgewotICAgICAgICAkaW1wbEluY2x1ZGVzeyJOb2RlRmls
dGVyLmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7Ik5hdGl2ZU5vZGVGaWx0ZXIuaCJ9
ID0gMTsKICAgICAgICAgJGltcGxJbmNsdWRlc3siT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaCJ9
ID0gMTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1NTcsNyArMTU1OCw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRu
ZWVkc0N1c3RvbXsiTm9kZUZpbHRlciJ9OwogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9u
Q29udGVudCwgIiAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZUZpbHRlcj4gbmF0aXZlTm9kZUZpbHRl
cjtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBpZiAo
JHBhcmFtTmFtZSlcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwg
IiAgICAgICAgbmF0aXZlTm9kZUZpbHRlciA9IFdlYkNvcmU6Ok5vZGVGaWx0ZXI6OmNyZWF0ZShX
ZWJDb3JlOjpPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKCRwYXJhbU5hbWUpKTtcbiIp
OworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAgbmF0aXZl
Tm9kZUZpbHRlciA9IFdlYkNvcmU6Ok5hdGl2ZU5vZGVGaWx0ZXI6OmNyZWF0ZShXZWJDb3JlOjpP
YmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKCRwYXJhbU5hbWUpKTtcbiIpOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJOYW1lcywgImVjIikgaWYgJHJh
aXNlc0V4Y2VwdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcAppbmRleCA0YmQ1OTdkN2IwMTMzYmYx
ZTgzYTk4YWNhZjc0MDA4MjhhMTdkNjhmLi4wZDg4ZTkyZWEyMTQzMjQ3YjcwYmQ5YjgxNGNkOWI1
M2E1NDkzMmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKQEAgLTIzOCw2ICsyMzgsMTUgQEAgYm9v
bCBKU1Rlc3RDYWxsYmFjazo6Y2FsbGJhY2tSZXF1aXJlc1RoaXNUb1Bhc3MoaW50IGxvbmdQYXJh
bSwgVGVzdE5vZGUqIHRlc3ROb2QKICAgICByZXR1cm4gIXJldHVybmVkRXhjZXB0aW9uOwogfQog
CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
VGVzdENhbGxiYWNrKiBpbXBsKQoreworICAgIGlmICghaW1wbCB8fCAhc3RhdGljX2Nhc3Q8SlNU
ZXN0Q2FsbGJhY2smPigqaW1wbCkuY2FsbGJhY2tEYXRhKCkpCisgICAgICAgIHJldHVybiBqc051
bGwoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU1Rlc3RDYWxsYmFjayY+KCppbXBsKS5j
YWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKKworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
U1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgKaW5kZXggYTIyYjcwYjNiMTkzYjMyNDM0
NDdhOThlYzQ2NjQ2ZjlhZjkzMzRmMC4uY2RkNzM3NzMwNDQ4NmM4NWVlMTZhZTM4MzZmYTJhNWE5
NmI0NDU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0IHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7IH0KIAogICAgIHZpcnR1YWwgfkpTVGVzdENhbGxiYWNrKCk7CisgICAgSlND
YWxsYmFja0RhdGEqIGNhbGxiYWNrRGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfQogICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKIAogICAgIC8vIEZ1bmN0aW9ucwpAQCAtNTgsNiArNTksOSBAQCBwcml2YXRlOgogICAg
IEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7CiB9OwogCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdENhbGxiYWNrKik7CitpbmxpbmUgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFRlc3RDYWxsYmFjayYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsICZpbXBsKTsgfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9u
LmNwcAppbmRleCAwYzQ1YzNmZDQyZDk2NzY0MWQyYmNkN2JhNzViZTBhYWM0N2M4YzAxLi44OTdj
N2JkZGQ1NDdmNDA3ZTA3ZWNjZjZkNThlZGRjNWUyOGFjNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxiYWNrRnVuY3Rpb24uY3BwCkBAIC0xODksNiArMTg5LDE1IEBAIGJvb2wgSlNUZXN0Q2FsbGJh
Y2tGdW5jdGlvbjo6Y2FsbGJhY2tSZXF1aXJlc1RoaXNUb1Bhc3MoaW50IGxvbmdQYXJhbSwgVGVz
dE5vZGUqCiAgICAgcmV0dXJuICFyZXR1cm5lZEV4Y2VwdGlvbjsKIH0KIAorSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDYWxsYmFja0Z1
bmN0aW9uKiBpbXBsKQoreworICAgIGlmICghaW1wbCB8fCAhc3RhdGljX2Nhc3Q8SlNUZXN0Q2Fs
bGJhY2tGdW5jdGlvbiY+KCppbXBsKS5jYWxsYmFja0RhdGEoKSkKKyAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTVGVzdENhbGxiYWNrRnVuY3Rpb24m
PigqaW1wbCkuY2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7CisKK30KKwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24u
aAppbmRleCAzZmUzZjIwOGRhZTUxYjI4ZTZlOWM3MGRkNWRjOGU2ZmI1ZWRmNTkyLi40MTJlMjI5
NWM3MThlYTFjOGJjMDUyMzk4ZGNmMTJmYzk2ZGUxMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFj
a0Z1bmN0aW9uLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0K
IAogICAgIHZpcnR1YWwgfkpTVGVzdENhbGxiYWNrRnVuY3Rpb24oKTsKKyAgICBKU0NhbGxiYWNr
RGF0YSogY2FsbGJhY2tEYXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9CiAKICAgICAvLyBGdW5jdGlv
bnMKICAgICB2aXJ0dWFsIGJvb2wgY2FsbGJhY2tXaXRoTm9QYXJhbSgpOwpAQCAtNTcsNiArNTgs
OSBAQCBwcml2YXRlOgogICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7CiB9OwogCitKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdENhbGxi
YWNrRnVuY3Rpb24qKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdENhbGxiYWNrRnVuY3Rp
b24mIGltcGwpIHsgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH0KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVT
SVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCA2NzQyZmI4OGY4YTA1YzRjNTQ2
MmYyZTQxYTc1ZWU3MTc5MmI1NzZjLi41NTY4NDcwNTk0ZmFlMDcwNTc0MTI0ZDhlZDg4NDQzMWVk
MDE4ZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTEwOCw3ICsxMDgsNiBA
QAogI2luY2x1ZGUgIk5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIgogI2luY2x1ZGUgIk5hbWVkTm9k
ZU1hcC5jcHAiCiAjaW5jbHVkZSAiTm9kZS5jcHAiCi0jaW5jbHVkZSAiTm9kZUZpbHRlci5jcHAi
CiAjaW5jbHVkZSAiTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiCiAjaW5jbHVkZSAiTm9kZUl0ZXJh
dG9yLmNwcCIKICNpbmNsdWRlICJOb2RlT3JTdHJpbmcuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05h
dGl2ZU5vZGVGaWx0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwYTM0YzlmZjRiNTE1OWZmOTYyNDRkNjI3
NzMwNmE1OTFiODQ4MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0
aXZlTm9kZUZpbHRlci5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVOb2RlRmlsdGVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworTmF0aXZlTm9kZUZpbHRlcjo6TmF0aXZlTm9kZUZpbHRlcihSZWZQdHI8Tm9k
ZUZpbHRlckNvbmRpdGlvbj4mJiBjb25kaXRpb24pCisgICAgOiBtX2NvbmRpdGlvbihjb25kaXRp
b24pCit7IH0KKwordWludDE2X3QgTmF0aXZlTm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShOb2RlKiBu
b2RlKQoreworICAgIC8vIGNhc3QgdG8gc2hvcnQgc2lsZW5jZXMgImVudW1lcmFsIGFuZCBub24t
ZW51bWVyYWwgdHlwZXMgaW4gcmV0dXJuIiB3YXJuaW5nCisgICAgcmV0dXJuIG1fY29uZGl0aW9u
ID8gbV9jb25kaXRpb24tPmFjY2VwdE5vZGUobm9kZSkgOiBzdGF0aWNfY2FzdDx1aW50MTZfdD4o
RklMVEVSX0FDQ0VQVCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTmF0aXZlTm9kZUZpbHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiMDc4ZWFiYzQ2MDM2NTBmMzUzNGE3
N2ViMmY0ODEzMzFmMjRhOTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TmF0aXZlTm9kZUZpbHRlci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IE5hdGl2ZU5vZGVGaWx0ZXJfaAorI2RlZmluZSBOYXRpdmVOb2RlRmlsdGVyX2gKKworI2luY2x1
ZGUgIk5vZGVGaWx0ZXIuaCIKKyNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTmF0aXZlTm9kZUZpbHRlciBmaW5hbCA6IHB1Ymxp
YyBOb2RlRmlsdGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE5hdGl2ZU5vZGVGaWx0ZXI+
IGNyZWF0ZShSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4mJiBjb25kaXRpb24pCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXRpdmVOb2RlRmlsdGVyKFdURjo6bW92ZShj
b25kaXRpb24pKSk7CisgICAgfQorCisgICAgc3RhdGljIFJlZjxOYXRpdmVOb2RlRmlsdGVyPiBj
cmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF0aXZlTm9kZUZp
bHRlcigpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHVpbnQxNl90IGFjY2VwdE5vZGUoTm9kZSop
IG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRDb25kaXRpb24oUmVmUHRyPE5vZGVGaWx0ZXJDb25k
aXRpb24+JiYgY29uZGl0aW9uKSB7IEFTU0VSVCghbV9jb25kaXRpb24pOyBtX2NvbmRpdGlvbiA9
IGNvbmRpdGlvbjsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE5hdGl2ZU5vZGVGaWx0ZXIo
UmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+JiYpOworCisgICAgTmF0aXZlTm9kZUZpbHRlcigp
IHsgfQorCisgICAgUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+IG1fY29uZGl0aW9uOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTmF0aXZlTm9kZUZpbHRlcl9o
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGRhYmM1NDBhNzBlNzU0OGE5OTRhMjc0MWI0MDMyMzI3N2M3MWU0Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUZpbHRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDAgRnJlZGVyaWsgSG9sbGplbiAoZnJlZGVyaWsuaG9sbGplbkBoaWcubm8pCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqIENvcHlyaWdodCAo
QykgMjAwNiBTYW11ZWwgV2VpbmlnIChzYW0ud2VpbmlnQGdtYWlsLmNvbSkKLSAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTm9kZUZpbHRlci5oIgotCi0jaW5jbHVkZSAiTm9k
ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXNob3J0IE5vZGVGaWx0ZXI6OmFjY2VwdE5v
ZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKSBjb25zdAotewotICAgIC8vIGNh
c3QgdG8gc2hvcnQgc2lsZW5jZXMgImVudW1lcmFsIGFuZCBub24tZW51bWVyYWwgdHlwZXMgaW4g
cmV0dXJuIiB3YXJuaW5nCi0gICAgcmV0dXJuIG1fY29uZGl0aW9uID8gbV9jb25kaXRpb24tPmFj
Y2VwdE5vZGUoc3RhdGUsIG5vZGUpIDogc3RhdGljX2Nhc3Q8c2hvcnQ+KEZJTFRFUl9BQ0NFUFQp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaAppbmRl
eCA5NjE5N2Q5Njk1MTQzMGU4NmZiOGIzOGVmN2FiZjJiYzMwZDQwMjQ4Li4yNmY3NjYzMWU4NDRh
ZmZkYmFkNDU3YTA4ZWQ3NTRmNjAzZWQ5MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmgKQEAg
LTMsNyArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgRnJlZGVyaWsgSG9sbGplbiAoZnJl
ZGVyaWsuaG9sbGplbkBoaWcubm8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkg
KHBta0Bwb3N0LmNvbSkKICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIChzYW0u
d2VpbmlnQGdtYWlsLmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwOCwgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDgs
IDIwMDksIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yNSw3MCArMjUsNTAgQEAKICNpZm5kZWYgTm9kZUZpbHRlcl9oCiAjZGVmaW5l
IE5vZGVGaWx0ZXJfaAogCi0jaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCi0jaW5jbHVkZSAi
Tm9kZUZpbHRlckNvbmRpdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBO
b2RlRmlsdGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm9kZUZpbHRlcj4gewotICAgIHB1YmxpYzoK
LSAgICAgICAgLyoqCi0gICAgICAgICAqIFRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIGFyZSByZXR1
cm5lZCBieSB0aGUgYWNjZXB0Tm9kZSgpCi0gICAgICAgICAqIG1ldGhvZDoKLSAgICAgICAgICov
Ci0gICAgICAgIGVudW0gewotICAgICAgICAgICAgRklMVEVSX0FDQ0VQVCA9IDEsCi0gICAgICAg
ICAgICBGSUxURVJfUkVKRUNUID0gMiwKLSAgICAgICAgICAgIEZJTFRFUl9TS0lQICAgPSAzCi0g
ICAgICAgIH07CitjbGFzcyBOb2RlOwogCi0gICAgICAgIC8qKgotICAgICAgICAgKiBUaGVzZSBh
cmUgdGhlIGF2YWlsYWJsZSB2YWx1ZXMgZm9yIHRoZSB3aGF0VG9TaG93IHBhcmFtZXRlci4KLSAg
ICAgICAgICogVGhleSBhcmUgdGhlIHNhbWUgYXMgdGhlIHNldCBvZiBwb3NzaWJsZSB0eXBlcyBm
b3IgTm9kZSwgYW5kCi0gICAgICAgICAqIHRoZWlyIHZhbHVlcyBhcmUgZGVyaXZlZCBieSB1c2lu
ZyBhIGJpdCBwb3NpdGlvbiBjb3JyZXNwb25kaW5nCi0gICAgICAgICAqIHRvIHRoZSB2YWx1ZSBv
ZiBOb2RlVHlwZSBmb3IgdGhlIGVxdWl2YWxlbnQgbm9kZSB0eXBlLgotICAgICAgICAgKi8KLSAg
ICAgICAgZW51bSB7Ci0gICAgICAgICAgICBTSE9XX0FMTCAgICAgICAgICAgICAgICAgICAgICAg
PSAweEZGRkZGRkZGLAotICAgICAgICAgICAgU0hPV19FTEVNRU5UICAgICAgICAgICAgICAgICAg
ID0gMHgwMDAwMDAwMSwKLSAgICAgICAgICAgIFNIT1dfQVRUUklCVVRFICAgICAgICAgICAgICAg
ICA9IDB4MDAwMDAwMDIsCi0gICAgICAgICAgICBTSE9XX1RFWFQgICAgICAgICAgICAgICAgICAg
ICAgPSAweDAwMDAwMDA0LAotICAgICAgICAgICAgU0hPV19DREFUQV9TRUNUSU9OICAgICAgICAg
ICAgID0gMHgwMDAwMDAwOCwKLSAgICAgICAgICAgIFNIT1dfRU5USVRZX1JFRkVSRU5DRSAgICAg
ICAgICA9IDB4MDAwMDAwMTAsCi0gICAgICAgICAgICBTSE9XX0VOVElUWSAgICAgICAgICAgICAg
ICAgICAgPSAweDAwMDAwMDIwLAotICAgICAgICAgICAgU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNU
SU9OICAgID0gMHgwMDAwMDA0MCwKLSAgICAgICAgICAgIFNIT1dfQ09NTUVOVCAgICAgICAgICAg
ICAgICAgICA9IDB4MDAwMDAwODAsCi0gICAgICAgICAgICBTSE9XX0RPQ1VNRU5UICAgICAgICAg
ICAgICAgICAgPSAweDAwMDAwMTAwLAotICAgICAgICAgICAgU0hPV19ET0NVTUVOVF9UWVBFICAg
ICAgICAgICAgID0gMHgwMDAwMDIwMCwKLSAgICAgICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01F
TlQgICAgICAgICA9IDB4MDAwMDA0MDAsCi0gICAgICAgICAgICBTSE9XX05PVEFUSU9OICAgICAg
ICAgICAgICAgICAgPSAweDAwMDAwODAwCi0gICAgICAgIH07CitjbGFzcyBOb2RlRmlsdGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8Tm9kZUZpbHRlcj4geworcHVibGljOgorICAgIHZpcnR1YWwgfk5v
ZGVGaWx0ZXIoKSB7IH0KKyAgICB2aXJ0dWFsIHVpbnQxNl90IGFjY2VwdE5vZGUoTm9kZSopID0g
MDsKIAotICAgICAgICBzdGF0aWMgUmVmPE5vZGVGaWx0ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5v
ZGVGaWx0ZXJDb25kaXRpb24+IGNvbmRpdGlvbikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUZpbHRlcihjb25kaXRpb24pKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHN0YXRpYyBSZWY8Tm9kZUZpbHRlcj4gY3JlYXRlKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUZpbHRlcigpKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7Ci0K
LSAgICAgICAgLy8gRG8gbm90IGNhbGwgdGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNj
YWZmb2xkaW5nIHRvIHN1cHBvcnQgdGhlIE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAv
LyBUaGV5IG9wZXJhdGUgaW4gdGhlIG1haW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkg
c3dhbGxvdyBKUyBleGNlcHRpb25zLgotICAgICAgICBzaG9ydCBhY2NlcHROb2RlKE5vZGUqIG5v
ZGUpIGNvbnN0IHsgcmV0dXJuIGFjY2VwdE5vZGUoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVh
ZE5vcm1hbFdvcmxkKCksIG5vZGUpLCBub2RlKTsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBz
ZXRDb25kaXRpb24oUGFzc1JlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBjb25kaXRpb24pIHsg
QVNTRVJUKCFtX2NvbmRpdGlvbik7IG1fY29uZGl0aW9uID0gY29uZGl0aW9uOyB9Ci0KLSAgICBw
cml2YXRlOgotICAgICAgICBleHBsaWNpdCBOb2RlRmlsdGVyKFBhc3NSZWZQdHI8Tm9kZUZpbHRl
ckNvbmRpdGlvbj4gY29uZGl0aW9uKSA6IG1fY29uZGl0aW9uKGNvbmRpdGlvbikgeyB9Ci0gICAg
ICAgIE5vZGVGaWx0ZXIoKSB7fQorICAgIC8qCisgICAgICogVGhlIGZvbGxvd2luZyBjb25zdGFu
dHMgYXJlIHJldHVybmVkIGJ5IHRoZSBhY2NlcHROb2RlKCkKKyAgICAgKiBtZXRob2Q6CisgICAg
ICovCisgICAgZW51bSB7CisgICAgICAgIEZJTFRFUl9BQ0NFUFQgPSAxLAorICAgICAgICBGSUxU
RVJfUkVKRUNUID0gMiwKKyAgICAgICAgRklMVEVSX1NLSVAgICA9IDMKKyAgICB9OwogCi0gICAg
ICAgIFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKKyAgICAvKgorICAg
ICAqIFRoZXNlIGFyZSB0aGUgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIHdoYXRUb1Nob3cgcGFy
YW1ldGVyLgorICAgICAqIFRoZXkgYXJlIHRoZSBzYW1lIGFzIHRoZSBzZXQgb2YgcG9zc2libGUg
dHlwZXMgZm9yIE5vZGUsIGFuZAorICAgICAqIHRoZWlyIHZhbHVlcyBhcmUgZGVyaXZlZCBieSB1
c2luZyBhIGJpdCBwb3NpdGlvbiBjb3JyZXNwb25kaW5nCisgICAgICogdG8gdGhlIHZhbHVlIG9m
IE5vZGVUeXBlIGZvciB0aGUgZXF1aXZhbGVudCBub2RlIHR5cGUuCisgICAgICovCisgICAgZW51
bSB7CisgICAgICAgIFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9IDB4RkZGRkZGRkYs
CisgICAgICAgIFNIT1dfRUxFTUVOVCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDEsCisg
ICAgICAgIFNIT1dfQVRUUklCVVRFICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDIsCisgICAg
ICAgIFNIT1dfVEVYVCAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCisgICAgICAg
IFNIT1dfQ0RBVEFfU0VDVElPTiAgICAgICAgICAgICA9IDB4MDAwMDAwMDgsCisgICAgICAgIFNI
T1dfRU5USVRZX1JFRkVSRU5DRSAgICAgICAgICA9IDB4MDAwMDAwMTAsCisgICAgICAgIFNIT1df
RU5USVRZICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMjAsCisgICAgICAgIFNIT1dfUFJP
Q0VTU0lOR19JTlNUUlVDVElPTiAgICA9IDB4MDAwMDAwNDAsCisgICAgICAgIFNIT1dfQ09NTUVO
VCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwODAsCisgICAgICAgIFNIT1dfRE9DVU1FTlQg
ICAgICAgICAgICAgICAgICA9IDB4MDAwMDAxMDAsCisgICAgICAgIFNIT1dfRE9DVU1FTlRfVFlQ
RSAgICAgICAgICAgICA9IDB4MDAwMDAyMDAsCisgICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01F
TlQgICAgICAgICA9IDB4MDAwMDA0MDAsCisgICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAg
ICAgICAgICA9IDB4MDAwMDA4MDAKICAgICB9OworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKaW5kZXggZGVlZTBhYjYzODIyMWNjNTA0MDlh
YWY4OWUzNDYyZjg0YTJkYzJhYy4uZmI3MzY0OTVlOTE0OGQ1NmYwMDc4ZGMyZDE5ZWE1MDA2MTNk
NjUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbApAQCAtMjAsMTYgKzIwLDEyIEBACiAK
IC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiBbCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rp
b24sCi0gICAgSlNDdXN0b21Ub05hdGl2ZU9iamVjdCwKICAgICBPYmpDUHJvdG9jb2wsCi0gICAg
Q1BQUHVyZUludGVyZmFjZSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRl
cmZhY2UgTm9kZUZpbHRlciB7CitdIGNhbGxiYWNrIGludGVyZmFjZSBOb2RlRmlsdGVyIHsKICAg
ICAvLyBDb25zdGFudHMgcmV0dXJuZWQgYnkgYWNjZXB0Tm9kZQotICAgIGNvbnN0IHNob3J0ICAg
ICAgICAgICAgICAgRklMVEVSX0FDQ0VQVCAgICAgICAgICAgICAgICAgID0gMTsKLSAgICBjb25z
dCBzaG9ydCAgICAgICAgICAgICAgIEZJTFRFUl9SRUpFQ1QgICAgICAgICAgICAgICAgICA9IDI7
Ci0gICAgY29uc3Qgc2hvcnQgICAgICAgICAgICAgICBGSUxURVJfU0tJUCAgICAgICAgICAgICAg
ICAgICAgPSAzOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTFRFUl9BQ0NFUFQgPSAxOwor
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTFRFUl9SRUpFQ1QgPSAyOworICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IEZJTFRFUl9TS0lQID0gMzsKIAogICAgIC8vIENvbnN0YW50cyBmb3Igd2hh
dFRvU2hvdwogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgU0hPV19BTEwgICAgICAgICAg
ICAgICAgICAgICAgID0gMHhGRkZGRkZGRjsKQEAgLTQ2LDcgKzQyLDEwIEBACiAgICAgY29uc3Qg
dW5zaWduZWQgbG9uZyAgICAgICBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAgPSAweDAw
MDAwNDAwOwogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgU0hPV19OT1RBVElPTiAgICAg
ICAgICAgICAgICAgID0gMHgwMDAwMDgwMDsKIAotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0g
c2hvcnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIE5vZGUgbik7Ci0K
KyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVf
QworICAgIHNob3J0IGFjY2VwdE5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBOb2Rl
IG4pOworI2Vsc2UKKyAgICBbQ3VzdG9tXSB1bnNpZ25lZCBzaG9ydCBhY2NlcHROb2RlKFtEZWZh
dWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsKKyNlbmRpZgogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmluZGV4IGU0NzhkOTQ4YWE0NDhjMmM4
ZWUyOTRkYTkyMzE5ZWYxYmZiNTdjMDEuLjcyYzllZTEyNmY4NDZjYmI3MzhkYTVkOTA0MGUyZDdj
ZjUwODI5NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAK
QEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zaG9ydCBOb2RlRmls
dGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0Citz
aG9ydCBOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKE5vZGUqKSBjb25zdAogewogICAg
IHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggOGJhMzhmNjk5MTBkYTVhYTQyODJkOTVmNGMzNDJi
ZGZmM2YwY2NkMy4uMmI5YWI2OGZkY2MzZjJlNjdjNmU1ZTIwYjBlMTA1MjU2MDM1Njc3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oCkBAIC00MSw3ICs0MSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBOb2RlRmlsdGVyQ29uZGl0aW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8Tm9kZUZpbHRlckNvbmRpdGlvbj4gewogICAgIHB1YmxpYzoKICAgICAg
ICAgdmlydHVhbCB+Tm9kZUZpbHRlckNvbmRpdGlvbigpIHsgfQotICAgICAgICB2aXJ0dWFsIHNo
b3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3QgPSAwOworICAgICAg
ICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0ID0gMDsKICAgICAgICAgdmly
dHVhbCB2b2lkIHZpc2l0QWdncmVnYXRlKEpTQzo6U2xvdFZpc2l0b3ImKSB7IH0KICAgICB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IGU0MzZjNzg5YmU3YzM4OWY5YTA5
Yjk5NTM0YWJlYTQzMmJiNWY1YzIuLjhmMjlhYjAxODhhOTQ4N2Q2MmZmNTcxMmZmMTk2MWJiMTU0
ZTIwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC04OCw3ICs4OCw3IEBA
IE5vZGVJdGVyYXRvcjo6fk5vZGVJdGVyYXRvcigpCiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmRl
dGFjaE5vZGVJdGVyYXRvcih0aGlzKTsKIH0KIAotUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6
bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRv
cjo6bmV4dE5vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiByZXN1bHQ7CiAKQEAgLTk4LDkgKzk4
LDcgQEAgUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUq
IHN0YXRlKQogICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgRklMVEVSX1JFSkVDVCBkb2VzIG5v
dCBwYXNzIG92ZXIgZGVzY2VuZGFudHMKICAgICAgICAgLy8gb2YgdGhlIHJlamVjdGVkIG5vZGUu
IEhlbmNlLCBGSUxURVJfUkVKRUNUIGlzIHRoZSBzYW1lIGFzIEZJTFRFUl9TS0lQLgogICAgICAg
ICBSZWZQdHI8Tm9kZT4gcHJvdmlzaW9uYWxSZXN1bHQgPSBtX2NhbmRpZGF0ZU5vZGUubm9kZTsK
LSAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0ZWQgPSBhY2NlcHROb2RlKHN0YXRlLCBwcm92aXNp
b25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLSAgICAgICAg
aWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUocHJvdmlzaW9uYWxSZXN1
bHQuZ2V0KCkpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CiAgICAgICAgIGlmIChub2Rl
V2FzQWNjZXB0ZWQpIHsKICAgICAgICAgICAgIG1fcmVmZXJlbmNlTm9kZSA9IG1fY2FuZGlkYXRl
Tm9kZTsKICAgICAgICAgICAgIHJlc3VsdCA9IHByb3Zpc2lvbmFsUmVzdWx0LnJlbGVhc2UoKTsK
QEAgLTExMiw3ICsxMTAsNyBAQCBSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpuZXh0Tm9kZShK
U0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotUmVmUHRyPE5v
ZGU+IE5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK1Jl
ZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6OnByZXZpb3VzTm9kZSgpCiB7CiAgICAgUmVmUHRyPE5v
ZGU+IHJlc3VsdDsKIApAQCAtMTIyLDkgKzEyMCw3IEBAIFJlZlB0cjxOb2RlPiBOb2RlSXRlcmF0
b3I6OnByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgICAgIC8vIEluIG90
aGVyIHdvcmRzLCBGSUxURVJfUkVKRUNUIGRvZXMgbm90IHBhc3Mgb3ZlciBkZXNjZW5kYW50cwog
ICAgICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9kZS4gSGVuY2UsIEZJTFRFUl9SRUpFQ1QgaXMg
dGhlIHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAgICAgIFJlZlB0cjxOb2RlPiBwcm92aXNpb25h
bFJlc3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2RlOwotICAgICAgICBib29sIG5vZGVXYXNBY2Nl
cHRlZCA9IGFjY2VwdE5vZGUoc3RhdGUsIHByb3Zpc2lvbmFsUmVzdWx0LmdldCgpKSA9PSBOb2Rl
RmlsdGVyOjpGSUxURVJfQUNDRVBUOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJvb2wgbm9kZVdhc0FjY2Vw
dGVkID0gYWNjZXB0Tm9kZShwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZpbHRlcjo6
RklMVEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5vZGVXYXNBY2NlcHRlZCkgewogICAgICAgICAg
ICAgbV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRhdGVOb2RlOwogICAgICAgICAgICAgcmVzdWx0
ID0gcHJvdmlzaW9uYWxSZXN1bHQucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5o
CmluZGV4IDBiOWZiZGNhMGVkNDBlYjAxNjRmMTBkYjQ2NDA2M2EzNjRmZTc5Y2IuLjQ5NzY2YWQz
MzIxNjUxOTM3NmM2ZTNhZmJlMGNlMjczMjQ0NWEzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmgKQEAgLTQzLDggKzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAg
ICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIAotICAgICAgICBSZWZQdHI8Tm9kZT4gbmV4dE5vZGUo
SlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgUmVmUHRyPE5vZGU+IHByZXZpb3VzTm9kZShKU0M6
OkV4ZWNTdGF0ZSopOworICAgICAgICBSZWZQdHI8Tm9kZT4gbmV4dE5vZGUoKTsKKyAgICAgICAg
UmVmUHRyPE5vZGU+IHByZXZpb3VzTm9kZSgpOwogICAgICAgICB2b2lkIGRldGFjaCgpOwogCiAg
ICAgICAgIE5vZGUqIHJlZmVyZW5jZU5vZGUoKSBjb25zdCB7IHJldHVybiBtX3JlZmVyZW5jZU5v
ZGUubm9kZS5nZXQoKTsgfQpAQCAtNTMsMTEgKzUzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgYW55IG5vZGUgaXMgcmVt
b3ZlZCBmcm9tIHRoZSBkb2N1bWVudCB0cmVlLgogICAgICAgICB2b2lkIG5vZGVXaWxsQmVSZW1v
dmVkKE5vZGUmKTsKIAotICAgICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRo
ZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0aXZlLUMgYmluZGlu
Z3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdv
cmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAgIFJlZlB0cjxOb2Rl
PiBuZXh0Tm9kZSgpIHsgcmV0dXJuIG5leHROb2RlKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJl
YWROb3JtYWxXb3JsZCgpLCByZWZlcmVuY2VOb2RlKCkpKTsgfQotICAgICAgICBSZWZQdHI8Tm9k
ZT4gcHJldmlvdXNOb2RlKCkgeyByZXR1cm4gcHJldmlvdXNOb2RlKGV4ZWNTdGF0ZUZyb21Ob2Rl
KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCByZWZlcmVuY2VOb2RlKCkpKTsgfQotCiAgICAgcHJp
dmF0ZToKICAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBleHBhbmRFbnRpdHlS
ZWZlcmVuY2VzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRv
ci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbAppbmRleCBjMGVhNmM4
OTA5ZjMwNGRlODcyMWE2NTc5MTFmMGM1NTNlZGRmOGI1Li4xMjAyNWRlNmI4YjQ5NDczZWZkN2Y3
ODQwMTFmNDFmNzYxMzA3YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbApAQCAt
MzAsOCArMzAsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJlZmVyZW5jZU5vZGU7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcG9pbnRlckJlZm9yZVJlZmVyZW5jZU5v
ZGU7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgbmV4dE5vZGUoKTsKLSAgICBb
Q2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcHJldmlvdXNOb2RlKCk7CisgICAgTm9kZSBuZXh0
Tm9kZSgpOworICAgIE5vZGUgcHJldmlvdXNOb2RlKCk7CiAgICAgdm9pZCBkZXRhY2goKTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKaW5kZXggMWMyMjcwNWU3ZmE3YzRhOGQ0OTEwOGFj
Mzg3MjEzNDNlMzhmOWQ2YS4uNzYzZjE0MWNlNzE2ZGNhY2RiNjgyN2E0ZWZiYWFjNzNmZmE4YjQ0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgTm9kZUl0ZXJh
dG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJvb3ROb2RlLCB1bnNp
Z25lZCBsb25nIHdoYXQKIHsKIH0KIAotc2hvcnQgTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9k
ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0CitzaG9ydCBOb2RlSXRl
cmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6
IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBjaGVjayBtX2V4cGFuZEVu
dGl0eVJlZmVyZW5jZXMuCiAKQEAgLTQ4LDcgKzQ4LDcgQEAgc2hvcnQgTm9kZUl0ZXJhdG9yQmFz
ZTo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUDsKICAgICBpZiAoIW1fZmlsdGVy
KQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLSAgICByZXR1cm4g
bV9maWx0ZXItPmFjY2VwdE5vZGUoc3RhdGUsIG5vZGUpOworICAgIHJldHVybiBtX2ZpbHRlci0+
YWNjZXB0Tm9kZShub2RlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
YXZlcnNhbC5oCmluZGV4IDE1ZjA5ZTJhYWNiYmIwYTM0MTcwZjg0NTEwZDQzNWU3ODYzODc0NjUu
LjZhY2ZiZGJjYTVkM2Y0ZTg1OTA1ZjI2OTFlZjFmZjZlMWYxNzRkYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJh
dmVyc2FsLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBleHBhbmRF
bnRpdHlSZWZlcmVuY2VzKTsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0
ZSosIE5vZGUqKSBjb25zdDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuY3BwCmluZGV4IGRmMDM0YjE3ZGI4ZTc3MGM1MzgwNDE0YmY4MzQ0NTE2OGU4
YTYwOWYuLjA1ODM2MjA2ZDY2NTQ3NWEzNTMxZDJiY2QwNWI5Yzc1MTYwM2YxNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVdhbGtlci5jcHAKQEAgLTU0LDI4ICs1NCwyNCBAQCBpbmxpbmUgTm9kZSogVHJl
ZVdhbGtlcjo6c2V0Q3VycmVudChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgcmV0dXJuIG1f
Y3VycmVudC5nZXQoKTsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cGFyZW50Tm9kZShKU0M6OkV4
ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKCkKIHsKICAgICBS
ZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICB3aGlsZSAobm9kZSAhPSByb290KCkp
IHsKICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2Rl
KQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQg
PSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0
YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHRO
b2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmls
dGVyOjpGSUxURVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5y
ZWxlYXNlKCkpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAotTm9kZSogVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitO
b2RlKiBUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBu
b2RlID0gbV9jdXJyZW50LT5maXJzdENoaWxkKCk7IG5vZGU7ICkgewotICAgICAgICBzaG9ydCBh
Y2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAg
IGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQo
KSk7CiAgICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAgY2Fz
ZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9
IG5vZGUucmVsZWFzZSgpOwpAQCAtOTYsMTkgKzkyLDE3IEBAIE5vZGUqIFRyZWVXYWxrZXI6OmZp
cnN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAg
ICAgaWYgKCFwYXJlbnQgfHwgcGFyZW50ID09IHJvb3QoKSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50
KQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICAgICAgbm9kZSA9IHBhcmVudDsKICAgICAgICAgfSB3aGlsZSAobm9kZSk7
CiAgICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBU
cmVlV2Fsa2VyOjpsYXN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdh
bGtlcjo6bGFzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJy
ZW50LT5sYXN0Q2hpbGQoKTsgbm9kZTsgKSB7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1
bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYm
IHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBz
aG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAg
c3dpdGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICBjYXNlIE5vZGVGaWx0ZXI6
OkZJTFRFUl9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gbm9kZS5yZWxlYXNl
KCk7CkBAIC0xMjksMjMgKzEyMywyMSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoSlND
OjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgQ29udGFpbmVy
Tm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgaWYgKCFwYXJl
bnQgfHwgcGFyZW50ID09IHJvb3QoKSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50KQotICAgICAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAg
ICAgICAgbm9kZSA9IHBhcmVudDsKICAgICAgICAgfSB3aGlsZSAobm9kZSk7CiAgICAgfQotICAg
IHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpw
cmV2aW91c1NpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6
cHJldmlvdXNTaWJsaW5nKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsK
ICAgICBpZiAobm9kZSA9PSByb290KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBz
aWJsaW5nID0gbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7IHNpYmxpbmc7ICkgewotICAgICAgICAg
ICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIHNpYmxpbmcuZ2V0
KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1
bHQgPSBhY2NlcHROb2RlKHNpYmxpbmcuZ2V0KCkpOwogICAgICAgICAgICAgc3dpdGNoIChhY2Nl
cHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUOgogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBzaWJsaW5nLnJlbGVhc2Uo
KTsKQEAgLTE2NCwyNSArMTU2LDIxIEBAIE5vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGlu
ZyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgICAgIH0KICAgICAgICAgbm9kZSA9IG5vZGUt
PnBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlIHx8IG5vZGUgPT0gcm9vdCgpKQotICAg
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2Nl
cHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5v
ZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpG
SUxURVJfQUNDRVBUKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKCkKIHsKICAg
ICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICBpZiAobm9kZSA9PSByb290KCkp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB3aGlsZSAo
MSkgewogICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBzaWJsaW5nID0gbm9kZS0+bmV4dFNpYmxp
bmcoKTsgc2libGluZzsgKSB7Ci0gICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0g
YWNjZXB0Tm9kZShzdGF0ZSwgc2libGluZy5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoc3RhdGUg
JiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc2libGluZy5nZXQo
KSk7CiAgICAgICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKICAgICAgICAgICAg
ICAgICBjYXNlIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgICAg
IG1fY3VycmVudCA9IHNpYmxpbmcucmVsZWFzZSgpOwpAQCAtMjAxLDMxICsxODksMjUgQEAgTm9k
ZSogVHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAg
ICB9CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9k
ZSB8fCBub2RlID09IHJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBzaG9y
dCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAg
ICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBzaG9ydCBhY2NlcHRO
b2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5v
ZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKLSAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCi1Ob2RlKiBUcmVl
V2Fsa2VyOjpwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdh
bGtlcjo6cHJldmlvdXNOb2RlKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVu
dDsKICAgICB3aGlsZSAobm9kZSAhPSByb290KCkpIHsKICAgICAgICAgd2hpbGUgKE5vZGUqIHBy
ZXZpb3VzU2libGluZyA9IG5vZGUtPnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgICAgICBu
b2RlID0gcHJldmlvdXNTaWJsaW5nOwotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3Vs
dCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRl
ICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkp
OwogICAgICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVS
X1JFSkVDVCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHdoaWxlIChO
b2RlKiBsYXN0Q2hpbGQgPSBub2RlLT5sYXN0Q2hpbGQoKSkgewogICAgICAgICAgICAgICAgIG5v
ZGUgPSBsYXN0Q2hpbGQ7Ci0gICAgICAgICAgICAgICAgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2Vw
dE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBz
dGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgICAgIGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwog
ICAgICAgICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRF
Ul9SRUpFQ1QpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAt
MjM1LDI5ICsyMTcsMjUgQEAgTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAobm9k
ZSA9PSByb290KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2Rl
KCk7CiAgICAgICAgIGlmICghcGFyZW50KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgbm9kZSA9IHBhcmVudDsKLSAgICAgICAgc2hv
cnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAg
ICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUu
Z2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxU
RVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkp
OwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSog
VHJlZVdhbGtlcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdh
bGtlcjo6bmV4dE5vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50Owog
Q2hpbGRyZW46CiAgICAgd2hpbGUgKE5vZGUqIGZpcnN0Q2hpbGQgPSBub2RlLT5maXJzdENoaWxk
KCkpIHsKICAgICAgICAgbm9kZSA9IGZpcnN0Q2hpbGQ7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5v
ZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0
YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgp
KTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FD
Q0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAg
ICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVCkK
QEAgLTI2NSw5ICsyNDMsNyBAQCBDaGlsZHJlbjoKICAgICB9CiAgICAgd2hpbGUgKE5vZGUqIG5l
eHRTaWJsaW5nID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUsIHJv
b3QoKSkpIHsKICAgICAgICAgbm9kZSA9IG5leHRTaWJsaW5nOwotICAgICAgICBzaG9ydCBhY2Nl
cHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlm
IChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5n
ZXQoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRF
Ul9BQ0NFUFQpCiAgICAgICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7
CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9TS0lQ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKaW5kZXggYzQ0MGMyOTZjYzY3NTM2NTAyOWU1NDYwNzdj
YTMyYjc3ZjA2NGM0ZC4uNmEzZmU3MTY4ZjA0ODVkM2VhOGZlNzQ2YmMwZTcxNjQwYTE3YzYzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCkBAIC00NSwyMyArNDUsMTMgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3Vy
cmVudC5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldEN1cnJlbnROb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgICAgICBOb2RlKiBwYXJlbnROb2RlKEpTQzo6RXhl
Y1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIGZpcnN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqKTsKLSAg
ICAgICAgTm9kZSogbGFzdENoaWxkKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIHBy
ZXZpb3VzU2libGluZyhKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBuZXh0U2libGlu
ZyhKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBwcmV2aW91c05vZGUoSlNDOjpFeGVj
U3RhdGUqKTsKLSAgICAgICAgTm9kZSogbmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqKTsKLQotICAg
ICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZv
bGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRo
ZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2Fs
bG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAgIE5vZGUqIHBhcmVudE5vZGUoKSB7IHJldHVybiBw
YXJlbnROb2RlKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1
cnJlbnQuZ2V0KCkpKTsgfQotICAgICAgICBOb2RlKiBmaXJzdENoaWxkKCkgeyByZXR1cm4gZmly
c3RDaGlsZChleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJy
ZW50LmdldCgpKSk7IH0KLSAgICAgICAgTm9kZSogbGFzdENoaWxkKCkgeyByZXR1cm4gbGFzdENo
aWxkKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQu
Z2V0KCkpKTsgfQotICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoKSB7IHJldHVybiBwcmV2
aW91c1NpYmxpbmcoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1f
Y3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5vZGUqIG5leHRTaWJsaW5nKCkgeyByZXR1cm4g
bmV4dFNpYmxpbmcoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1f
Y3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5vZGUqIHByZXZpb3VzTm9kZSgpIHsgcmV0dXJu
IHByZXZpb3VzTm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwg
bV9jdXJyZW50LmdldCgpKSk7IH0KLSAgICAgICAgTm9kZSogbmV4dE5vZGUoKSB7IHJldHVybiBu
ZXh0Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJy
ZW50LmdldCgpKSk7IH0KKyAgICAgICAgTm9kZSogcGFyZW50Tm9kZSgpOworICAgICAgICBOb2Rl
KiBmaXJzdENoaWxkKCk7CisgICAgICAgIE5vZGUqIGxhc3RDaGlsZCgpOworICAgICAgICBOb2Rl
KiBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAgTm9kZSogbmV4dFNpYmxpbmcoKTsKKyAgICAg
ICAgTm9kZSogcHJldmlvdXNOb2RlKCk7CisgICAgICAgIE5vZGUqIG5leHROb2RlKCk7CiAKICAg
ICBwcml2YXRlOgogICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVk
IGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBleHBhbmRFbnRp
dHlSZWZlcmVuY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2Vy
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAppbmRleCAyNjNhZWZhNDkw
Mjk1ZjQwYzBiY2I5YWRlZWUwZmU3OGQ0MGU2MmNmLi40ODA5ZWUzZDRmMWQxZmQ0MDg1ZTFhMTE5
NzNhOGRmNDAyMGU0NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtl
ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCkBAIC0yOSwxMiAr
MjksMTIgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzOyAgICAgICAgCiAgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIE5v
ZGUgY3VycmVudE5vZGU7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcGFyZW50
Tm9kZSgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBmaXJzdENoaWxkKCk7Ci0g
ICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIGxhc3RDaGlsZCgpOwotICAgIFtDYWxsV2l0
aD1TY3JpcHRTdGF0ZV0gTm9kZSBwcmV2aW91c1NpYmxpbmcoKTsKLSAgICBbQ2FsbFdpdGg9U2Ny
aXB0U3RhdGVdIE5vZGUgbmV4dFNpYmxpbmcoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVd
IE5vZGUgcHJldmlvdXNOb2RlKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIG5l
eHROb2RlKCk7CisgICAgTm9kZSBwYXJlbnROb2RlKCk7CisgICAgTm9kZSBmaXJzdENoaWxkKCk7
CisgICAgTm9kZSBsYXN0Q2hpbGQoKTsKKyAgICBOb2RlIHByZXZpb3VzU2libGluZygpOworICAg
IE5vZGUgbmV4dFNpYmxpbmcoKTsKKyAgICBOb2RlIHByZXZpb3VzTm9kZSgpOworICAgIE5vZGUg
bmV4dE5vZGUoKTsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYzUyMWQ0MGM5YjFiYzUwY2FmY2RlMzgzN2FkYjNm
ZDUyYzI3YzM0Li4wZGU4ZGZiODVmNGY1YTRhODU5NTBiNTFmMzBhNjFlZDhmNDA0NTNkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTIgQEAKKzIwMTUtMDgtMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBOb2RlRmlsdGVyIHNob3VsZCBiZSBhIGNhbGxiYWNrIGludGVyZmFj
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NDE1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
UmViYXNlbGluZSwgdGhlIG5ldyBleGNlcHRpb24gbWVzc2FnZSBpcyBkaWZmZXJlbnQgYnV0IHRo
ZSBleGNlcHRpb24KKyAgICAgICAgdHlwZSBpcyB0aGUgc2FtZS4KKworICAgICAgICAqIGZhc3Qv
ZG9tL2NvbnN0YW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vY29uc3RhbnRz
Lmh0bWw6CisgICAgICAgIFN0b3AgY2hlY2tpbmcgZm9yIGNvbnN0YW50cyBvbiBOb2RlRmlsdGVy
IGluc3RhbmNlcyBhcyB0aG9zZSBhcmUgbm93CisgICAgICAgIEZ1bmN0aW9ucyAoaW1wbGVtZW50
ZWQgYnkgdGhlIEphdmFTY3JpcHQpLiBUaG9zZSBjb25zdGFudHMgYXJlIG9uCisgICAgICAgIHdp
bmRvdy5Ob2RlRmlsdGVyIHN0aWxsLiBJIHZlcmlmaWVkIHRoYXQgdGhpcyBpcyBjb25zaXN0YW50
IHdpdGgKKyAgICAgICAgRmlyZWZveC4KKworICAgICAgICAqIGZhc3QvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMuaHRtbDoKKyAgICAgICAgVXBkYXRlIHRoZSBjaGVjayB0byB2ZXJpZnkgdGhhdCB0
aGUgcHJvdG90eXBlIG9mIGEgTm9kZUZpbHRlciBpbnN0YW5jZQorICAgICAgICBpcyB0aGUgRnVu
Y3Rpb24gcHJvdG90eXBlLCBub3QgdGhlIE5vZGVGaWx0ZXIgcHJvdG90eXBlLiBOb2RlRmlsdGVy
CisgICAgICAgIHNob3VsZCBub3QgaGF2ZSBhIHByb3RvdHlwZSBhcyBpdCBpcyBhIGNhbGxiYWNr
IGludGVyZmFjZS4KKworICAgICAgICAqIGZhc3QvZG9tL25vZGUtZmlsdGVyLWdjLmh0bWw6Cisg
ICAgICAgIFBhc3MgbnVsbCBmb3IgdGhlIGZpbHRlciBhcmd1bWVudCBpbnN0ZWFkIG9mIDAuIFRo
ZSBmdW5jdGlvbnMgZXhwZWN0CisgICAgICAgIGEgbnVsbGFibGUgTm9kZUZpbHRlciBvYmplY3Qu
IFBhc3NpbmcgMCBoZXJlIHRocm93cy4KKworICAgICAgICAqIGZhc3QvZG9tL25vZGUtZmlsdGVy
LWludGVyZmFjZS1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUuIHdpbmRvdy5Ob2Rl
RmlsdGVyIG5vIGxvbmdlciBoYXMgYSBwcm90b3R5cGUuIFRoaXMgaXMgYmVjYXVzZQorICAgICAg
ICBjYWxsYmFjayBpbnRlcmZhY2VzIGFyZSBub3Qgc3VwcG9zZWQgdG8gaGF2ZSBhIHByb3RvdHlw
ZSBwcm9wZXJ0eSwgYXMKKyAgICAgICAgcGVyIHRoZSBXZWIgSURMIHNwZWNpZmljYXRpb246Cisg
ICAgICAgIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2ludGVyZmFjZS1wcm90b3R5
cGUtb2JqZWN0CisKKyAgICAgICAgSSBhbHNvIHZlcmlmaWVkIHRoYXQgdGhpcyBpcyBjb25zaXN0
ZW50IHdpdGggRmlyZWZveC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL2RvbS9pbnRlcmZh
Y2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy9kb20vbm9kZXMvRG9j
dW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0
cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgIFJlYmFzZWxpbmUgVzNDIHRlc3RzLiBXZSBhcmUgbm93IHBhc3NpbmcgYSBsb3Qgb2Yg
Y2hlY2tzIGJlY2F1c2UgdGhleQorICAgICAgICBjaGVjayB0aGF0IFRyZWVXYWxrZXIuZmlsdGVy
IC8gTm9kZUl0ZXJhdG9yLmZpbHRlciBpcyBhIEZ1bmN0aW9uLgorCisgICAgICAgICogdHJhdmVy
c2FsL3NpemUtemVyby1ydW4uaHRtbDoKKyAgICAgICAgRml4IHRoZSB0ZXN0IHRvIHBhc3MgYSBu
dWxsIG5vZGUgZmlsdGVyIGluc3RlYWQgb2YgTm9kZUZpbHRlci5GSUxURVJfQUNDRVBULgorICAg
ICAgICBUaGUgY2FsbCB3YXMgbm90IHZhbGlkIGFuZCBub3cgY29ycmVjdGx5IHRocm93cy4gVGhl
IEpTIGlzIHN1cHBvc2VkIHRvIHBhc3MKKyAgICAgICAgaW4gYSBudWxsYWJsZSBOb2RlRmlsdGVy
LCBub3QgYSBjb25zdGFudC4gSSB0aGluayB0aGUgY29kZSBtZWFudCB0byBzYXkKKyAgICAgICAg
ImZ1bmN0aW9uKCkgeyByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUOyB9IiwgaG93ZXZl
ciwgSSB1c2VkIG51bGwgYXMKKyAgICAgICAgaXQgaXMgc2hvcnRlciBhbmQgZXF1aXZhbGVudC4K
KwogMjAxNS0wOC0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJhbmdlLmRldGFjaCgpIC8gTm9kZUl0ZXJhdG9yLmRldGFjaCgpIHNob3VsZCBiZSBuby1vcHMg
YXMgcGVyIHRoZSBsYXRlc3QgRE9NIHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci1leHBlY3Rl
ZC50eHQKaW5kZXggY2E1ZGE4NDFiNzgyYjMzZmZlOTNiZjBhNDljY2Y4N2UyNDVmZGQzYi4uZWU3
ZDIxYTZmZmI3OTc1ZjJmOTEzMGQ0YjNhNDBhNDI2YzViNDRhYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci1l
eHBlY3RlZC50eHQKQEAgLTI2LDE1ICsyNiwxNSBAQCBQQVNTIHdhbGtlci5maXJzdENoaWxkKCk7
IHdhbGtlci5jdXJyZW50Tm9kZS5pZCBpcyAnQTEnCiBQQVNTIHdhbGtlci5uZXh0Tm9kZSgpOyB3
YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0IxJwogCiBUZXN0aW5nIHdpdGggb2JqZWN0IGxhY2tp
bmcgYWNjZXB0Tm9kZSBwcm9wZXJ0eQotUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb2RlRmlsdGVyIG9iamVjdCBkb2VzIG5vdCBoYXZlIGFuIGFj
Y2VwdE5vZGUgZnVuY3Rpb24uCitQQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsg
aXMgJ3Jvb3QnCi1QQVNTIHdhbGtlci5uZXh0Tm9kZSgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBOb2RlRmlsdGVyIG9iamVjdCBkb2VzIG5vdCBoYXZlIGFuIGFjY2VwdE5vZGUgZnVuY3Rp
b24uCitQQVNTIHdhbGtlci5uZXh0Tm9kZSgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgogUEFTUyB3YWxrZXIuY3VycmVudE5vZGUuaWQ7IGlzICdyb290JwogCiBUZXN0
aW5nIHdpdGggb2JqZWN0IHdpdGggbm9uLWZ1bmN0aW9uIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBB
U1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZp
bHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3
YWxrZXIuZmlyc3RDaGlsZCgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgogUEFTUyB3YWxrZXIuY3VycmVudE5vZGUuaWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4
dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9l
cyBub3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUo
KTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1
cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKIAogVGVzdGluZyB3aXRoIGZ1bmN0aW9uIGhhdmluZyBh
Y2NlcHROb2RlIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25z
dGFudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVj
dGVkLnR4dAppbmRleCA0N2ZjNWIyYmM4MTNiY2ZhNWFjMmU3NTE5OTVmOTkzNjZiNzcyM2I4Li5i
ZmQ2NTcwNTU0YTI3OTkxZDU3YWQ1MTg2Mzg2NGUyMDkzZGU5NTVkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2NvbnN0YW50cy1leHBlY3RlZC50eHQKQEAgLTI0LDIyICsyNCw2IEBAIFBBU1M6
IHdpbmRvdy5DU1NWYWx1ZS5DU1NfSU5IRVJJVCBzaG91bGQgYmUgMCBhbmQgaXMuCiBQQVNTOiB3
aW5kb3cuQ1NTVmFsdWUuQ1NTX1BSSU1JVElWRV9WQUxVRSBzaG91bGQgYmUgMSBhbmQgaXMuCiBQ
QVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX1ZBTFVFX0xJU1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgog
UEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19DVVNUT00gc2hvdWxkIGJlIDMgYW5kIGlzLgotUEFT
Uzogbm9kZUZpbHRlci5GSUxURVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IG5v
ZGVGaWx0ZXIuRklMVEVSX1JFSkVDVCBzaG91bGQgYmUgMiBhbmQgaXMuCi1QQVNTOiBub2RlRmls
dGVyLkZJTFRFUl9TS0lQIHNob3VsZCBiZSAzIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hP
V19BTEwgc2hvdWxkIGJlIDQyOTQ5NjcyOTUgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgc2hvdWxkIGJlIDEgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSBzaG91bGQgYmUgMiBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfVEVYVCBzaG91
bGQgYmUgNCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQ0RBVEFfU0VDVElPTiBzaG91
bGQgYmUgOCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfRU5USVRZX1JFRkVSRU5DRSBz
aG91bGQgYmUgMTYgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0VOVElUWSBzaG91bGQg
YmUgMzIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJ
T04gc2hvdWxkIGJlIDY0IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19DT01NRU5UIHNo
b3VsZCBiZSAxMjggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UIHNob3Vs
ZCBiZSAyNTYgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UX1RZUEUgc2hv
dWxkIGJlIDUxMiBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfRE9DVU1FTlRfRlJBR01F
TlQgc2hvdWxkIGJlIDEwMjQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX05PVEFUSU9O
IHNob3VsZCBiZSAyMDQ4IGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5Ob2RlRmlsdGVyLkZJTFRFUl9B
Q0NFUFQgc2hvdWxkIGJlIDEgYW5kIGlzLgogUEFTUzogd2luZG93Lk5vZGVGaWx0ZXIuRklMVEVS
X1JFSkVDVCBzaG91bGQgYmUgMiBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuTm9kZUZpbHRlci5GSUxU
RVJfU0tJUCBzaG91bGQgYmUgMyBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9jb25zdGFudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0YW50cy5odG1s
CmluZGV4IGRjZTI1ODg5NDNhYzA1OGRjMmIxOWNhMzBlZDczMDBhNzY4ZjBlMDEuLjE5NWJiY2Q5
ZTY1NzZlMzQ4NTFmNzdiNWU1MTE5Y2E4MTgwZmY3ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2NvbnN0YW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0
YW50cy5odG1sCkBAIC0zMiw3ICszMiw3IEBAIGZ1bmN0aW9uIHNob3VsZEJlKGEsIGIpCiAgICAg
cHJpbnQobWVzc2FnZSwgY29sb3IpOwogfQogCi12YXIgY3NzUnVsZSwgY3NzVmFsdWUsIG5vZGVG
aWx0ZXIsIGV2ZW50OwordmFyIGNzc1J1bGUsIGNzc1ZhbHVlLCBldmVudDsKIAogZnVuY3Rpb24g
dGVzdCgpIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkBAIC02NiwzNCArNjYsNiBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgIHNob3VsZEJlKCJ3aW5kb3cuQ1NTVmFsdWUuQ1NTX1ZBTFVF
X0xJU1QiLCAyKTsKICAgICBzaG91bGRCZSgid2luZG93LkNTU1ZhbHVlLkNTU19DVVNUT00iLCAz
KTsKIAotICAgIHZhciBub2RlSXRlcmF0b3I7Ci0gICAgdHJ5IHsKLSAgICAgICAgbm9kZUl0ZXJh
dG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsgfSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7
Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIG5vZGVJdGVyYXRvciA9IG5ldyBPYmplY3QoKTsK
LSAgICB9Ci0gICAgCi0gICAgbm9kZUZpbHRlciA9IG5vZGVJdGVyYXRvci5maWx0ZXI7Ci0gICAg
c2hvdWxkQmUoIm5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCIsIDEpOwotICAgIHNob3VsZEJlKCJu
b2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1QiLCAyKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5G
SUxURVJfU0tJUCIsIDMpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQUxMIiwgMHhG
RkZGRkZGRik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIiwgMHgwMDAw
MDAwMSk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUiLCAweDAwMDAw
MDAyKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX1RFWFQiLCAweDAwMDAwMDA0KTsK
LSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0NEQVRBX1NFQ1RJT04iLCAweDAwMDAwMDA4
KTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0VOVElUWV9SRUZFUkVOQ0UiLCAweDAw
MDAwMDEwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0VOVElUWSIsIDB4MDAwMDAw
MjApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElP
TiIsIDB4MDAwMDAwNDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQ09NTUVOVCIs
IDB4MDAwMDAwODApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQiLCAw
eDAwMDAwMTAwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UX1RZUEUi
LCAweDAwMDAwMjAwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UIiwgMHgwMDAwMDQwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19OT1RB
VElPTiIsIDB4MDAwMDA4MDApOwotCiAgICAgc2hvdWxkQmUoIndpbmRvdy5Ob2RlRmlsdGVyLkZJ
TFRFUl9BQ0NFUFQiLCAxKTsKICAgICBzaG91bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIuRklMVEVS
X1JFSkVDVCIsIDIpOwogICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5GSUxURVJfU0tJ
UCIsIDMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy5odG1s
CmluZGV4IDk3ZDJmYWRiZGU5ZTE4YTBlOTA5ZDgzNzI5ZmM3ZTU5NzhjZWQ2Y2UuLjBiMzlkZDA3
MDMzNmUxYzM4OTZkODcwZjk5N2RlOWY4OTQ3YWQwNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWwKQEAgLTg1LDcgKzg1LDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgdHJ5IHsKICAgICAgIG5vZGVGaWx0ZXIgPSBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBmdW5jdGlvbiAoKSB7
fSwgZmFsc2UpLmZpbHRlcjsKICAgICB9IGNhdGNoKGUpIHt9Ci0gICAgc2hvdWxkQmUoIndpbmRv
dy5Ob2RlRmlsdGVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKG5vZGVGaWx0ZXIpIiwgdHJ1ZSk7
CisgICAgc2hvdWxkQmUoIkZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKG5vZGVGaWx0
ZXIpIiwgdHJ1ZSk7CiAKICAgICBvcmlnaW5hbE5vZGVQcm90b3R5cGUgPSB3aW5kb3cuTm9kZS5w
cm90b3R5cGU7CiAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZp
bHRlci1nYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbApp
bmRleCAwNjQ5YWQyMThiZTlkZmFhMTk3M2NkYzc1NjA3MTVmNGJlZmZhZjhmLi5hMjA0YzQ0YmYz
ZjNjZDU4MDljNGIwMmVhZTBjNDQ1OWMyNzA1NjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25v
ZGUtZmlsdGVyLWdjLmh0bWwKQEAgLTMsOCArMyw4IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIp
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgCi12YXIgaXRlcmF0b3IgPSBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAwLCBmYWxzZSk7Ci12YXIgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIDAsIGZhbHNlKTsKK3ZhciBpdGVyYXRvciA9
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwsIGZhbHNlKTsKK3ZhciB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCwgZmFsc2UpOwogCiAv
LyBjcmVhdGUgbG90cyBvZiBvYmplY3RzIHRvIGZvcmNlIGEgZ2FyYmFnZSBjb2xsZWN0aW9uCiAg
dmFyIGkgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXIt
aW50ZXJmYWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVy
LWludGVyZmFjZS1leHBlY3RlZC50eHQKaW5kZXggNWU1NDY4NmZhYTNjN2FmMzZhZGI1YjExNmY4
MjVkYjFjYzZmNzJjNy4uZDRhOThjOGU0MjUyNTA5ZDJlM2I2ZTBhYWRhYTdmYjZlZjU2ZGJjZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZh
Y2UtZXhwZWN0ZWQudHh0CkBAIC0zOSw4ICszOSw2IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
CiBbQ29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IGZhbHNl
LCB2YWx1ZTogMF0KICogbmFtZQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFs
c2UsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IE5vZGVGaWx0ZXJdCi0qIHByb3RvdHlwZQotW0Nv
bmZpZ3VyYWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZh
bHVlOiBbb2JqZWN0IE5vZGVGaWx0ZXJQcm90b3R5cGVdXQogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXggODIyMjQ5MjgwYjkx
ZTRiODk4MWM4NjRlZjIwY2E4NjQ3YzkyN2JlNi4uN2Q0MDg3MmNjNmYxODMyN2JhYmMxODRiNTg4
ZjQ1NzdmOGEwNzNjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9t
L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMTg5MCw0MSArMTg5MCw0MSBAQCBQQVNT
IFRyZWVXYWxrZXIgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50
LmJvZHksIE5vZGVGaWx0ZXIuUwogUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlNIT1dfQUxMLCBudWxs
LCBmYWxzZSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwcmV2aW91c05vZGUiIHdpdGggdGhlIHBy
b3BlciB0eXBlICg5KSAKIFBBU1MgVHJlZVdhbGtlciBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRlci5TSE9XX0FMTCwgbnVsbCwgZmFs
c2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmV4dE5vZGUiIHdpdGggdGhlIHByb3BlciB0eXBl
ICgxMCkgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRf
ZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2
ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVS
X0FDQ0VQVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTog
Y29uc3RhbnQgRklMVEVSX0FDQ0VQVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3Nl
cnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVy
dHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfUkVKRUNUIG9uIGludGVyZmFj
ZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfUkVK
RUNUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRl
ciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1JFSkVD
VCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IEZJTFRFUl9TS0lQIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInBy
b3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRl
ciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9TS0lQIG9uIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19BTEwgb24g
aW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNI
T1dfQUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZp
bHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxz
ZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19BTEwg
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRUxFTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInBy
b3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRl
ciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRUxFTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQVRUUklC
VVRFIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRf
ZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IFNIT1dfQVRUUklCVVRFIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBO
b2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19URVhUIG9uIGludGVyZmFjZSBvYmpl
Y3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1RFWFQgb24gaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBu
b3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQ
QVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1RFWFQgb24gaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBT
SE9XX0NEQVRBX1NFQ1RJT04gb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ0RBVEFfU0VDVElPTiBvbiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInBy
b3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRl
ciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ0RBVEFfU0VDVElPTiBvbiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1df
RU5USVRZX1JFRkVSRU5DRSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGlu
dGVyZmFjZTogY29uc3RhbnQgU0hPV19FTlRJVFlfUkVGRVJFTkNFIG9uIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAi
cHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmls
dGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTlRJVFlfUkVGRVJFTkNFIG9uIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19FTlRJVFkgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFz
c2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9w
ZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTog
Y29uc3RhbnQgU0hPV19FTlRJVFkgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJ
T04gb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IFNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlw
ZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiBvbiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNI
T1dfQ09NTUVOVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFj
ZTogY29uc3RhbnQgU0hPV19DT01NRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFz
c2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9w
ZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTog
Y29uc3RhbnQgU0hPV19DT01NRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFT
UyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVCBvbiBpbnRlcmZh
Y2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NV
TUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0
ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2Ug
Z290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1F
TlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZB
SUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlRfVFlQRSBvbiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxk
IG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUK
K1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlRfVFlQRSBv
biBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6
IGNvbnN0YW50IFNIT1dfRE9DVU1FTlRfRlJBR01FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZB
SUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlRfRlJBR01FTlQg
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNo
b3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0
cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGlu
dGVyZmFjZTogY29uc3RhbnQgU0hPV19OT1RBVElPTiBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJ
TCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19OT1RBVElPTiBvbiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBo
YXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwg
Tm9kZUZpbHRlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhY2NlcHROb2RlKE5vZGUpIGFzc2VydF9m
YWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBl
eHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3Rh
bnQgU0hPV19OT1RBVElPTiBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhY2NlcHROb2RlKE5vZGUpIAogRkFJTCBET01U
b2tlbkxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCBhc3NlcnRfZXF1YWxzOiBjbGFzcyBzdHJpbmcgb2YgRE9NVG9rZW5MaXN0IGV4cGVj
dGVkICJbb2JqZWN0IEZ1bmN0aW9uXSIgYnV0IGdvdCAiW29iamVjdCBET01Ub2tlbkxpc3RDb25z
dHJ1Y3Rvcl0iCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBB
U1MgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRy
ZWVXYWxrZXItZXhwZWN0ZWQudHh0CmluZGV4IDcyZWFkNTMyOWVmOTNkMThmYjMyMjYyMDE4MWVi
YjcyODdjYWVjMmUuLjM4ZWYwMDhjMDRiYTBmYjBlMGMyYmYxNTQzOTYxNDZjMWEwOTExY2YgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1j
cmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKQEAg
LTMsNSArMyw1IEBAIFBBU1MgUmVxdWlyZWQgYXJndW1lbnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIg
c2hvdWxkIGJlIHJlcXVpcmVkLgogUEFTUyBPcHRpb25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJl
ZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDEgcGFzc2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFy
Z3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSBvcHRpb25hbCAoMiBwYXNzZWQp
LiAKIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJl
IG9wdGlvbmFsICgzIHBhc3NlZCwgbnVsbCkuIAotRkFJTCBPcHRpb25hbCBhcmd1bWVudHMgdG8g
Y3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDMgcGFzc2VkLCBmdW5jdGlvbiku
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHt9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
T3B0aW9uYWwgYXJndW1lbnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFs
ICgzIHBhc3NlZCwgZnVuY3Rpb24pLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQu
dHh0CmluZGV4IDRkNTk4NmM0ZjRmMTQ1YmViZDRmNDViYjAzZWQzMDM2MTNkNmMwZWMuLjhhNTZk
N2E0MjUyZDJkZjFlZWE5YzczOTY4MjQyZDlmYTMxZWU2NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL05vZGVJdGVy
YXRvci1leHBlY3RlZC50eHQKQEAgLTUsNzQzICs1LDc0MyBAQCBQQVNTIGNyZWF0ZU5vZGVJdGVy
YXRvcigpIHdpdGggbnVsbCBhcyBhcmd1bWVudHMKIEZBSUwgY3JlYXRlTm9kZUl0ZXJhdG9yKCkg
d2l0aCB1bmRlZmluZWQgYXMgYXJndW1lbnRzIGFzc2VydF9lcXVhbHM6IHdoYXRUb1Nob3cgZXhw
ZWN0ZWQgNDI5NDk2NzI5NSBidXQgZ290IDAKIFBBU1MgUHJvcGFnYXRlIGV4Y2VwdGlvbiBmcm9t
IGZpbHRlciBmdW5jdGlvbiAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBd
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RD
aGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEx
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxk
LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERp
diwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
YywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxl
bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxF
bGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5v
ZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRU
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZG
RkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFn
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0
eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5
cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0s
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sx
XSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0
RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
dGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRl
c3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3RE
aXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRl
eHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVu
dCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxD
b21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENv
bW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFn
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jdHlwZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBl
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
dHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5
cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVy
c2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
ZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA5YWJlZDMwZTc0YjVh
NjA0MTU3NTk4MmVhMDIwYWE4ZGM1ODQ1NjI2Li42NTU3ODRkYjViYjI4YjgxMTA3MjNmOWM1NDNk
YTZmOWJlZWM5MDc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20v
dHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQKQEAgLTEsNzQy
ICsxLDc0MyBAQAogCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxk
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBd
LmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0uZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEx
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxk
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxk
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hp
bGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N1bWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5uZXh0U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9k
ZSAiVHJlZVdhbGtlciB0ZXN0cyIgYnV0IGdvdCBudWxsCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5uZXh0U2libGluZygp
IGV4cGVjdGVkIFRleHQgbm9kZSAiV3h5emFiY2QiIGJ1dCBnb3QgbnVsbAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvYywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Ms
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLm5leHRTaWJsaW5n
KCkgZXhwZWN0ZWQgVGV4dCBub2RlICJFZmdoaWprbCIgYnV0IGdvdCBDb21tZW50IG5vZGUgPCEt
LSJDb21tZW50ZXIiIGFuZCAiY29tbWVudGF0b3IiIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gIEkn
di4uLi0tPgogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmEyLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
YywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5uZXh0U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9k
ZSAiZG8gcmUgbWkgZmEgc28gbGEgdGkiIGJ1dCBnb3QgQ29tbWVudCBub2RlIDwhLS1JIG1hbGlj
aW91c2x5IGNyZWF0ZWQgYSBjb21tZW50IHRoYXQgd2lsbCBicmVhayBpbmNhdXRpb3UuLi4tLT4K
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1l
bnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4
dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
MCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Y29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENv
bW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAw
eEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRl
c3REaXYsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERp
diwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVz
dERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5uZXh0U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9kZSAiSWprbG1ub3AKKyIgYnV0IGdv
dCBDb21tZW50IG5vZGUgPCEtLUFscGhhYmV0IHNvdXA/LS0+CiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRl
c3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25D
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxD
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhG
RkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJh
ZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFn
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmF2
ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1sIGIvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3NpemUtemVy
by1ydW4uaHRtbAppbmRleCBjNjdiMjJiNDkxNTJhNGE5NmNjNDNhNGZjNDkwMmMyMzVlYjczZWQ3
Li4zNWI1NGM2ZDQxNDZjMmExYWZiMDk2OWNkNWFkMDkxOTRjNzY3ODY3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy90cmF2ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3RyYXZlcnNhbC9zaXplLXplcm8tcnVuLmh0bWwKQEAgLTExLDcgKzExLDcgQEAgZnVuY3Rpb24g
dGVzdCgpIHsKICAgICB0ZXh0bm9kZTIubm9kZVZhbHVlID0gIiI7CiAgICAgCiAgICAgdmFyIHJv
b3QgPSBkb2N1bWVudC5ib2R5OwotICAgIHZhciBpdCA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihyb290LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgTm9kZUZpbHRlci5GSUxURVJfQUND
RVBULCBmYWxzZSk7CisgICAgdmFyIGl0ID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHJv
b3QsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsLCBmYWxzZSk7CiAKICAgICB2YXIgbiA9
IGl0Lm5leHROb2RlKCk7CiAgICAgd2hpbGUobikgewpAQCAtMjgsNCArMjgsNCBAQCBmdW5jdGlv
biB0ZXN0KCkgewogPHA+QSBjcmFzaCB3b3VsZCBvY2N1ciBvbiBpdGVyYXRpb24gb3ZlciBhIG5v
ZGUgY29udGFpbmluZyBzdWNoIGEgcnVuLiAgTm9kZUl0ZXJhdG9ycywgdGhlIGlubmVyVGV4dCBw
cm9wZXJ0eSwgYW5kIGhvdmVyaW5nIG92ZXIgYSBsaW5rIGFsbCB1c2UgaXRlcmF0aW9uLjwvcD4K
IDxwPlRoaXMgdGVzdHMgaXRlcmF0aW9uIHVzaW5nIGJvdGggdGhlIGlubmVyVGV4dCBwcm9wZXJ0
eSBhbmQgTm9kZUl0ZXJhdG9ycy4gIEl0IGlzIHN1Y2Nlc3NmdWwgaWYgaXQgZG9lc24ndCBjcmFz
aCBTYWZhcmkuPC9wPgogPGhyPgotPGEgaHJlZj0iIyIgaWQ9Im5vZGUiPmhlbGxvPC9hPjwvYm9k
eT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPGEgaHJlZj0iIyIgaWQ9Im5v
ZGUiPmhlbGxvPC9hPjwvYm9keT48L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260321</attachid>
            <date>2015-08-31 15:06:07 -0700</date>
            <delta_ts>2015-08-31 21:21:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148415-20150831150549.patch</filename>
            <type>text/plain</type>
            <size>544346</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZiOGVmMmVlMzBmNDcx
YjMxNjkzZDM5Y2Y3NDY5ZDg4MWJjYjVmOC4uNGMxZDEwMThmZjQwMWM0ODc5NmE5N2NmOTc3ZGEw
ZDRkZTQ5MTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NSBAQAorMjAxNS0wOC0zMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGVGaWx0ZXIgc2hvdWxk
IGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOb2RlRmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSwg
aW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLAorICAgICAgICBhcyBwZXIgdGhlIERPTSBz
cGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVy
ZmFjZS1ub2RlZmlsdGVyCisKKyAgICAgICAgT25lIG1ham9yIGRpZmZlcmVuY2UgaXMgdGhhdCBU
cmVlV2Fsa2VyLmZpbHRlciAvIE5vZGVJdGVyYXRvciBpcworICAgICAgICBzdXBwb3NlZCB0byBi
ZSBhIEZ1bmN0aW9uIC8gT2JqZWN0IChwYXNzZWQgYnkgSmF2YVNjcmlwdCksIGJ1dCBpdCB3YXMg
YQorICAgICAgICBKU05vZGVGaWx0ZXIgd3JhcHBlciBpbiBXZWJLaXQuIEFsc28sIHdpbmRvdy5O
b2RlRmlsdGVyIGlzIG5vdCBzdXBwb3NlZAorICAgICAgICB0byBoYXZlIGEgcHJvdG90eXBlIHBy
b3BlcnR5LgorCisgICAgICAgIFRoaXMgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIEZpcmVm
b3guIEhvd2V2ZXIsIENocm9tZSBzdGlsbCBoYXMgaXRzCisgICAgICAgIG93biBOb2RlRmlsdGVy
IHdyYXBwZXIuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgIGh0dHAvdGVzdHMvdzNjL2RvbS90
cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLmh0bWwgKHJlYmFzZWxpbmVkKQorICAgICAg
ICBodHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbCAocmViYXNlbGlu
ZWQpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgIEFkZCAvIFJlbW92ZSBmaWxlcyB0byB0aGUgcHJvamVjdCBmaWxlcy4KKwor
ICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlRmls
dGVyQ29uZGl0aW9uLmg6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbjo6YWNjZXB0Tm9kZSk6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ05vZGVG
aWx0ZXJDb25kaXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVy
Q29uZGl0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246
OmFjY2VwdE5vZGUpOgorICAgICAgICBEcm9wIEV4ZWNTdGF0ZSBwYXJhbWV0ZXIgYXMgaXQgaXMg
bm90IHVzZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgVXNlIE5hdGl2ZU5vZGVG
aWx0ZXIgdHlwZSBpbnN0ZWFkIG9mIE5vZGVGaWx0ZXIuIE5vZGVGaWx0ZXIgaXMgbm93CisgICAg
ICAgIGEgcHVyZSBpbnRlcmZhY2Ugd2l0aCAyIHN1YmNsYXNzZXM6IE5hdGl2ZU5vZGVGaWx0ZXIg
Zm9yIHRoZSBuYXRpdmUKKyAgICAgICAgYmluZGluZ3MgYW5kIEpTTm9kZUZpbHRlciBmb3IgdGhl
IEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcDoKKyAgICAgICAgRHJvcCBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGFzIGl0IHdhcyBy
ZW1vdmVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAg
VGhyb3cgYSBUeXBlRXJyb3IgaWYgdGhlIGNhbGxiYWNrIG9iamVjdCBiZWluZyBpbnZva2VkIGlz
IG5vdCBjYWxsYWJsZQorICAgICAgICBhbmQgZG9lcyBub3QgaGF2ZSBhIGNhbGxhYmxlIHByb3Bl
cnR5IHdpdGggdGhlIGV4cGVjdGVkIG5hbWUuIFRoZXJlCisgICAgICAgIGFyZSBzZXZlcmFsIGxh
eW91dCB0ZXN0cyBjb3ZlcmluZyB0aGlzIChpbmNsdWRpbmcgdzNjIG9uZXMpLiBQcmV2aW91c2x5
LAorICAgICAgICBOb2RlRmlsdGVyIHdhcyBub3QgdXNpbmcgdGhlIGdlbmVyaWMgSlNDYWxsYmFj
a0RhdGEgYW5kIHRoZSBleGNlcHRpb24KKyAgICAgICAgdGhyb3dpbmcgd2FzIGluIEpTTm9kZUZp
bHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZSgpIGluc3RlYWQuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICBEcm9wIHRo
aXMgY2xhc3MuIEpTTm9kZUZpbHRlciAvIEpTTm9kZUZpbHRlckN1c3RvbSBub3cgYmFzaWNhbGx5
IHRha2UKKyAgICAgICAgY2FyZSBvZiBhbGwgdGhpcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXI6
OmFjY2VwdE5vZGUpOgorICAgICAgICBDb21wbGV0ZSByZXdyaXRlLiBUaGlzIGZpbGUgaXMgbm93
IG9ubHkgdXNlZCB0byBwcm92aWRlIGEgY3VzdG9tCisgICAgICAgIGltcGxlbWVudGF0aW9uIGZv
ciBKU05vZGVGaWx0ZXI6OmFjY2VwdE5vZGUoKS4gVGhlIGNvZGUgaXMgc2ltaWxhciB0bworICAg
ICAgICB3aGF0IHdhcyBwcmV2aW91c2x5IGRvbmUgaW4gSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjph
Y2NlcHROb2RlKCkuCisgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIHJlYXNvbnMgd2UgbmVlZCBj
dXN0b20gYmluZGluZ3MgaGVyZToKKyAgICAgICAgLSBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGRv
ZXMgbm90IGhhbmRsZSB5ZXQgY2FsbGJhY2sgZnVuY3Rpb25zCisgICAgICAgICAgcmV0dXJuaW5n
IGFueXRoaW5nIGVsc2UgdGhhbiBhIGJvb2xlYW4uCisgICAgICAgIC0gVGhlIHNwZWNpZmljYXRp
b24gY2xlYXJseSBzdGF0ZXMgdGhhdCB3ZSBuZWVkIHRvIHJldGhyb3cgZXhjZXB0aW9ucworICAg
ICAgICAgIHRocm93biBieSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uIEhvd2V2ZXIsIHRoZSBkZWZh
dWx0IGJlaGF2aW9yIG9mCisgICAgICAgICAgb3VyIGJpbmRpbmdzIGlzIHRvIHNpbXBseSByZXBv
cnQgdGhlIGV4Y2VwdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG06CisgICAgICAgIE9ubHkgc2tpcCBmdW5jdGlvbnMgdGhhdCBoYXZlIHBh
cmFtZXRlcnMgdGhhdCBhcmUgY2FsbGJhY2sgKmZ1bmN0aW9ucyosCisgICAgICAgIG5vdCBjYWxs
YmFjayAqaW50ZXJmYWNlcyouIENhbGxiYWNrIGludGVyZmFjZXMgYXJlIHZlcnkgc2ltaWxhciB0
bworICAgICAgICBpbnRlcmZhY2VzIGFuZCB0aGUgZ2VuZXJhdG9yIGlzIGFibGUgdG8gaGFuZGxl
IHRoZW0uIFRoaXMgY2hhbmdlIHdhcworICAgICAgICBuZWVkZWQgZm9yIHRoZSBHVEsgYmluZGlu
Z3MgZ2VuZXJhdG9yIHdvdWxkIG5vIGxvbmdlciBnZW5lcmF0ZSBiaW5kaW5ncworICAgICAgICBm
b3IgRG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKCkgLyBEb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKCksIG5vdworICAgICAgICB0aGF0IE5vZGVGaWx0ZXIgaXMgYSBjYWxsYmFjayBpbnRlcmZh
Y2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyKToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IEdlbmVyYXRlIGEgdG9KUygpIGZ1bmN0aW9uIGZvciBjYWxsYmFjayBpbnRlcmZhY2VzIGFzIHdl
bGwuIFByZXZpb3VzbHksCisgICAgICAgIHdlIHdvdWxkIG9ubHkgZ2VuZXJhdGUgdGhvc2UgZm9y
IHJlZ3VsYXIgaW50ZXJmYWNlcy4gVGhpcyBpcyBuZWVkZWQKKyAgICAgICAgYmVjYXVzZSBOb2Rl
RmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSBhbmQgaXQgaXMgZXhwb3NlZCB0bwor
ICAgICAgICBKUyB2aWEgTm9kZUl0ZXJhdG9yLmZpbHRlciAvIFRyZWVXYWxrZXIuZmlsdGVyLiBU
aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbWVyZWx5IHJldHVybnMgdGhlIGNhbGxiYWNrIG9i
amVjdCAvIGZ1bmN0aW9uIGluc2lkZSB0aGUgSlNDYWxiYWNrRGF0YQorICAgICAgICBzbyB0aGUg
SlMgZ2V0cyBiYWNrIHRoZSBvYmplY3QgLyBmdW5jdGlvbiBpdCBwYXNzZWQgaW4uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICBUd2Vh
ayB0aGUgT2JqQyBiaW5kaW5ncyBnZW5lcmF0b3IgdG8gdXNlIE5hdGl2ZU5vZGVGaWx0ZXIgY2xh
c3MgaW5zdGVhZAorICAgICAgICBvZiBOb2RlRmlsdGVyIGFzIE5vZGVGaWx0ZXIgaXMgbm93IGEg
cHVyZSBpbnRlcmZhY2VzLiBOYXRpdmUgYmluZGluZ3MKKyAgICAgICAgYXJlIG5vdyBleHBlY3Rl
ZCB0byB1c2UgdGhlIE5hdGl2ZU5vZGVGaWx0ZXIgc3ViY2xhc3MgaW5zdGVhZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmg6
CisgICAgICAgIFJlYmFzZWxpbmUgYmluZGluZ3MgdGVzdHMgbm93IHRoYXQgd2UgZ2VuZXJhdGUg
dG9KUygpIGZ1bmN0aW9ucyBmb3IKKyAgICAgICAgY2FsbGJhY2sgZnVuY3Rpb25zIC8gaW50ZXJm
YWNlcy4KKworICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgIERyb3AgTm9k
ZUZpbHRlci5jcHAgYXMgaXQgd2FzIHJlbW92ZWQuCisKKyAgICAgICAgKiBkb20vTmF0aXZlTm9k
ZUZpbHRlci5jcHA6IEFkZGVkLgorICAgICAgICAqIGRvbS9OYXRpdmVOb2RlRmlsdGVyLmg6IEFk
ZGVkLgorICAgICAgICBJbnRyb2R1Y2UgbmV3IE5hdGl2ZU5vZGVGaWx0ZXIgY2xhc3Mgd2hpY2gg
c3ViY2xhc3NlcyB0aGUgTm9kZUZpbHRlcgorICAgICAgICBpbnRlcmZhY2UgYW5kIGlzIHVzZWQg
YnkgbmF0aXZlIGJpbmRpbmdzLiBJdHMgYWNjZXB0KCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
dXNlcyBOb2RlRmlsdGVyQ29uZGl0aW9uIG9iamVjdCBpbnRlcm5hbGx5IHRvIGZpbHRlciB0aGUg
bm9kZXMgaW5zdGVhZAorICAgICAgICBvZiBhIEpTIGNhbGxiYWNrLgorCisgICAgICAgICogZG9t
L05vZGVGaWx0ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyLmg6Cisg
ICAgICAgIE1ha2UgTm9kZUZpbHRlciBhIHB1cmUgaW50ZXJmYWNlLiBJdHMgcHJldmlvdXMgY29k
ZSBpcyBub3cgZWl0aGVyIGluCisgICAgICAgIE5hdGl2ZU5vZGVGaWx0ZXIgb2YgSlNOb2RlRmls
dGVyLgorCisgICAgICAgICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICBNYWtlIE5vZGVG
aWx0ZXIgYSBjYWxsYmFjayBpbnRlcmZhY2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNl
LAorICAgICAgICBhcyBwZXIgdGhlIERPTSBzcGVjaWZpY2F0aW9uLiBBbHNvIGhhdmUgaXRzIGFj
Y2VwdCgpIG9wZXJhdGlvbiByZXR1cm4KKyAgICAgICAgYW4gdW5zaWduZWQgc2hvcnQgaW5zdGVh
ZCBvZiBhIHNob3J0IHRvIG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uLgorICAgICAgICBUaGUgT2Jq
QyB2ZXJzaW9uIHN0aWxsIHJldHVybnMgYSBzaG9ydCB0aG91Z2ggZm9yIGJhY2t3YXJkCisgICAg
ICAgIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oOgorCisgICAgICAgICogZG9tL05v
ZGVJdGVyYXRvci5jcHA6CisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5oOgorICAgICAgICAq
IGRvbS9Ob2RlSXRlcmF0b3IuaWRsOgorICAgICAgICAqIGRvbS9UcmF2ZXJzYWwuY3BwOgorICAg
ICAgICAqIGRvbS9UcmF2ZXJzYWwuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5jcHA6Cisg
ICAgICAgICogZG9tL1RyZWVXYWxrZXIuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6
CisgICAgICAgIFN0b3AgcGFzc2luZyBFeGVjU3RhdGUgdG8gVHJlZVdhbGtlciAvIE5vZGVJdGVy
YXRvciBmdW5jdGlvbnMuIEl0IG5vCisgICAgICAgIGxvbmdlciBzZWVtcyB0byBiZSBuZWVkZWQg
YXMgd2Ugbm93IHVzZSB0aGUgSlNDYWxsYmFja0RhdGEgYWJzdHJhY3Rpb24KKyAgICAgICAgZm9y
IGludm9raW5nIEpTLgorCiAyMDE1LTA4LTMxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgTm9kZUZpbHRlci5TSE9XX0FMTCBoYXMgd3JvbmcgdmFsdWUgb24gMzIt
Yml0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ2MDcwZTAzMWY0NmQ3NWQwMTU1NTM0MmQxZmY1
YmU3ZGJkOGQxMjkuLmUzNGM2MmViYjFhNmU4YWMzN2NkMTBjODBiN2I1MDZlODllZTcwOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTYxLDcgKzExNjEsNiBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCiAgICAgYmluZGlu
Z3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmNwcAotICAgIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlSXRl
cmF0b3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlT3JTdHJpbmcuY3BwCkBAIC0x
NDM2LDggKzE0MzUsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL05hbWVOb2RlTGlz
dC5jcHAKICAgICBkb20vTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKICAgICBkb20vTmFtZWROb2Rl
TWFwLmNwcAorICAgIGRvbS9OYXRpdmVOb2RlRmlsdGVyLmNwcAogICAgIGRvbS9Ob2RlLmNwcAot
ICAgIGRvbS9Ob2RlRmlsdGVyLmNwcAogICAgIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcAog
ICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCiAgICAgZG9tL05vZGVPclN0cmluZy5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDA1MDk2
NGZhNzViYThmN2Q5ZWQ1YzI3YTU5YjliMGU0NGUwOGNiZDAuLmI3NjJkNmViODE1MjgxYzM5MWE2
Y2YwZTRjNjkzOTIwZWM2Y2QwMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ1NTcsMjAgKzE0NTU3LDYgQEAKICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBp
bGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTm9kZUZpbHRlci5jcHAiPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE5vZGVGaWx0ZXJDb25kaXRp
b24uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAg
LTE4NDc5LDIwICsxODQ2NSw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCI+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJD
dXN0b20uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
QEAgLTIyNDk3LDcgKzIyNDY5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRp
bmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxiaW5kaW5nc1xqc1xKU05vZGVPclN0cmluZy5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xTY2hlZHVsZWRBY3Rpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA4YzQ4MTczMmY4ZDRiMDM4
MzFkZTJlODJhZTE3OTg4OWJjZDg2NzAzLi5lMWY5ZWIwMTUwMDAzOGFlOWJjZGRhZGNiYjZhMzkw
NjkxZjU4YTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC00NDA0LDkgKzQ0MDQsNiBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmNwcCI+CiAgICAgICA8
RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIj4K
LSAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5j
cHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtMTE0OTgsOSArMTE0OTUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGlu
Z3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiPgotICAgICAgPEZpbHRlcj5iaW5kaW5nc1xq
czwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiPgogICAgICAgPEZpbHRlcj5i
aW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYjRlNzM0ZjBhYzJh
MjM3NjUxNWQ1YThiYjk4NjYzZmY3YTZjMzMuLjhlMjQ0MDA1MzZiMzMxZTc5NmE5Y2MyZDQ0YTk5
ZTI1MDQ5MmI2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI2ODQsNiArMjY4NCw3IEBACiAJCTgzMDAzMEY1MUI3RDMzQjUw
MEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwMDMwRjMxQjdEMzNBNjAwRUQzQUFD
IC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgKi87IH07CiAJCTgzMDAzMEY2MUI3
RDMzQjUwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDAzMEY0MUI3RDMzQTYwMEVE
M0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODMwMDMwRjgx
QjdEM0I3ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMg
LyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKKwkJODMwNkVGRjExQjhCQ0VBNTAwMzFE
MDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODMwNkVGRjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVG
aWx0ZXIuY3BwICovOyB9OwogCQk4MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0
ZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgg
Ki87IH07CiAJCTgzMkI4NDM2MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJh
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMy
Qjg0MzUxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgKi87IH07
CiAJCTgzNDhCRkFCMUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0OEJGQTkxQjg1NzI5
NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi87IH07CkBAIC0yNjk3LDYgKzI2OTgs
NyBAQAogCQk4Mzg2QTk3MDE5RjYxRTRGMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzODZBOTZFMTlGNjFF
NEYwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuY3BwICovOyB9OwogCQk4MzlBQUZFQzFBMEMwQzhE
MDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUExQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJF
bGVtZW50LmNwcCAqLzsgfTsKIAkJODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsgfTsKKwkJODNC
MkQxNzUxQjhCQ0Q2QTAwQTAyRTQ3IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTk1OUUxMUI4QkMyMkIwMDREOTM4
NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi87IH07CiAJCTgzQjk2ODdCMTlGOEFCODMwMDRFRjdB
RiAvKiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzQjk2ODc5MTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxk
ZXJDb252ZXJ0ZXIuaCAqLzsgfTsKIAkJODNDMDVBNUExQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxl
UHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMDVBNTgxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJv
cGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICovOyB9OwogCQk4M0MwNUE1QjFBNjg2MjEyMDA3
RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMDVBNTkxQTY4NjIxMjAwN0U1REVB
IC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCAqLzsgfTsKQEAgLTI3MTgsNiAr
MjcyMCw3IEBACiAJCTgzQzFENDM0MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTGluZXRv
VmVydGljYWxSZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzQzFENDIyMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxS
ZWwuaCAqLzsgfTsKIAkJODNDMUQ0MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3Zl
dG9BYnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
QzFENDIzMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmggKi87IH07CiAJ
CTgzQzFENDM2MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyNDE3OEQ1QUI0
MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oICovOyB9OworCQk4M0YxMjA2QjFCOEMx
MDQ3MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2MyAvKiBK
U05vZGVGaWx0ZXJDdXN0b20uY3BwICovOyB9OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYg
LyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVh
bS5oICovOyB9OwogCQk4NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJl
YW1CdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIu
Y3BwICovOyB9OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJl
YW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmgg
Ki87IH07CkBAIC0yOTA5LDcgKzI5MTIsNiBAQAogCQk4NTQyQTc5ODBBRTVDOTQzMDBERjU4REYg
LyogSlNTVkdOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODU3NEQxRjMwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHTnVtYmVyLmNwcCAqLzsg
fTsKIAkJODU0MkE3OTkwQUU1Qzk0NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTc0
RDFGMjBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLzsg
fTsKIAkJODU0MkE3OUEwQUU1Qzk0NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
NzREMUYxMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAg
Ki87IH07Ci0JCTg1NEZFNzMwMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI2MEEyMjk3
QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCAqLzsgfTsKIAkJODU0RkU3MzEwQTIyOTdCRTAw
NThEN0FEIC8qIE5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1NEZFNzI3MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi87
IH07CiAJCTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI4
MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsgfTsKIAkJODU0
RkU3MzMwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI5MEEyMjk3QkUwMDU4
RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi87IH07CkBAIC01NDg4LDkgKzU0OTAsNiBA
QAogCQlCQ0IxNkMyODA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZDMEYwOTc5
QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLzsgfTsKIAkJQkNCMTZDMjkw
OTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgKi87IH07CiAJCUJDQjE2QzJBMDk3OUMzQkQw
MDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJQkNCNzczNjEwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRp
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsg
fTsKLQkJQkNCNzczNjIwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNzczNUYw
QzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oICovOyB9OwotCQlCQ0I3
NzM2MzBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzYwMEMxNzg1M0QwMDEz
MkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovOyB9OwogCQlCQ0I5MkQ0RjEyOTM1NTBC
MDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0I5MkQ0RTEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5l
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNC
QjhBQjkxM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAgLyog
UE9ESW50ZXJ2YWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0JCOEFCQTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JCOEFCNjEzRjFB
RkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMDUzLDYgKzEwMDUyLDcgQEAKIAkJODMwMDMw
RjMxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW5lcmljQ2FjaGVkSFRNTENvbGxl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAwMzBGNDFCN0QzM0E2
MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVk
SFRNTENvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVk
SFRNTENvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMwNkVGRjAx
QjhCQ0U3QzAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmF0aXZlTm9kZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxl
bWVudEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMkI4NDM1MTlEOEU1
NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM0OEJGQTkxQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29s
bGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGFzc0Nv
bGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwOTAsNiArMTAw
OTAsOCBAQAogCQk4M0MxRDQyNDE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1Jl
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTW92ZXRvUmVs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDI2RDNDMUFGRENDNTAwMDFCMzg3
MyAvKiBDaGlsZE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENoaWxkTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzRDI2RDNEMUFGRENDNTAwMDFCMzg3MyAvKiBQYXJlbnROb2RlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBQYXJlbnROb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNFOTU5
RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlTm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4M0YxMjA2QTFCOEMxMDM2MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE0MTIwRDkyRDAw
MDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NDE5RDJBNTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFt
QnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE2MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDI2NSw3ICsxMDI2Nyw2IEBACiAJCTg1NDA3NTY2MEFENkNC
RjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODU0MDc1NjcwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxP
cHRpb25FbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2ODBB
RDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTRGRTcyNjBBMjI5N0JFMDA1OEQ3QUQg
LyogTm9kZUZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Tm9kZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZFNzI3MEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOb2RlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZF
NzI4MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0RkU3MjkwQTIyOTdCRTAwNThEN0FEIC8qIE5v
ZGVGaWx0ZXJDb25kaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5v
ZGVGaWx0ZXJDb25kaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDk1
LDkgKzEzMDk2LDYgQEAKIAkJQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0
eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFhTTFN0
eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMTZDMTAwOTc5QzNC
RDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50
aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKIAkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDYWNoZWRSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
Q0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0I3NzM1RjBDMTc4NTNEMDAxMzJC
QTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU05vZGVGaWx0ZXJDb25kaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkNCNzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCOTJENEUxMjkzNTUwQjAwQzgz
ODdGIC8qIEZvbnRCYXNlbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
b250QmFzZWxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCQjhBQjUxM0Yx
QUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBPREludGVydmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkI4
QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUE9ESW50ZXJ2YWxUcmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMTM5MSw2ICsyMTM4OSw3IEBACiAJCQkJQkNCRkI1M0EwRENEMjlDRjAwMTlC
M0U1IC8qIEpTRE9NV2luZG93U2hlbGwuY3BwICovLAogCQkJCUJDQkZCNTNCMERDRDI5Q0YwMDE5
QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi8sCiAJCQkJNjVFMEU5NDMxMTMzQzg5RjAwQjRD
QjEwIC8qIEpTRE9NV3JhcHBlci5oICovLAorCQkJCTgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2MyAv
KiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovLAogCQkJCTdDOTFBMzhEMUI0OThBQkUwMDNGOUVG
QSAvKiBKU05vZGVPclN0cmluZy5jcHAgKi8sCiAJCQkJN0M5MUEzOEUxQjQ5OEFCRTAwM0Y5RUZB
IC8qIEpTTm9kZU9yU3RyaW5nLmggKi8sCiAJCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5IC8q
IEpTRXJyb3JIYW5kbGVyLmNwcCAqLywKQEAgLTIxNTc0LDcgKzIxNTczLDYgQEAKIAkJCQkwNzM3
OTRFNzE5RUUzMzVDMDBFNUEwNDUgLyogSlNOYXZpZ2F0b3JDdXN0b20uY3BwICovLAogCQkJCUJD
RDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwICovLAogCQkJCUJDOTQz
OUMyMTE2Q0Y0OTQwMDQ4Qzc1MCAvKiBKU05vZGVDdXN0b20uaCAqLywKLQkJCQlCQ0I3NzM2MDBD
MTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLywKIAkJCQkxQTc1MERE
MzBBOTBFNzI5MDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwICovLAogCQkJCUJD
RDlDMjYxMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQlB
RDIwQjE4QzE4RTlEMjE2MDA1QTgwODMgLyogSlNOb2RlTGlzdEN1c3RvbS5oICovLApAQCAtMjE4
OTUsOCArMjE4OTMsNiBAQAogCQkJCTkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50
TGlzdGVuZXIuaCAqLywKIAkJCQk5MzVGNDU0MDBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZl
bnRMaXN0ZW5lci5jcHAgKi8sCiAJCQkJOTM1RjQ1NDEwRjdDM0I1RjAwRDdDMUZCIC8qIEpTTGF6
eUV2ZW50TGlzdGVuZXIuaCAqLywKLQkJCQlCQ0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyogSlNO
b2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLywKLQkJCQlCQ0I3NzM1RjBDMTc4NTNEMDAxMzJCQTQg
LyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDYWxsYmFj
ayBPYmplY3RzIjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzQwNywxMCArMjM0
MDMsMTEgQEAKIAkJCQk4NUFDQTlGOTBBOUI2MzEwMDA2NzFFOTAgLyogTmFtZWROb2RlTWFwLmlk
bCAqLywKIAkJCQlBODE4NzIxOTA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmNwcCAq
LywKIAkJCQlBODE4NzIxMzA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmggKi8sCisJ
CQkJODMwNkVGRjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwICovLAor
CQkJCTgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8sCiAJ
CQkJQThDNEE3RUUwOUQ1NjMyNzAwMDNBQzhEIC8qIE5vZGUuY3BwICovLAogCQkJCTE0MTE1QjUx
MDlGODRCNzEwMENBNEZDMSAvKiBOb2RlLmggKi8sCiAJCQkJMTREQzBEMEIwOUZFQ0ZBNDAwN0Iw
MjM1IC8qIE5vZGUuaWRsICovLAotCQkJCTg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2Rl
RmlsdGVyLmNwcCAqLywKIAkJCQk4NTRGRTcyNzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRl
ci5oICovLAogCQkJCTE0MTE1QUY5MDlGODQ3RDYwMENBNEZDMSAvKiBOb2RlRmlsdGVyLmlkbCAq
LywKIAkJCQk4NTRGRTcyODBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5j
cHAgKi8sCkBAIC0yNDc3Miw2ICsyNDc2OSw3IEBACiAJCQkJODUzQkY0REIwQUJCNkI1NTAwODY0
N0JCIC8qIERPTU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NDA3NTI2MEFENkM2NjcwMDYy
MEM1NyAvKiBET01Ob2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUI0OThGQjBBREIz
NDAyMDA5MjVDQkIgLyogRE9NTm9kZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0Iy
RDE3NTFCOEJDRDZBMDBBMDJFNDcgLyogTmF0aXZlTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODU1MjZDMzcwQUIwQTE3RTAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODUwQjQxQzIwQUQ5RTdFNzAwQTZFRDRGIC8qIERPTU5vZGVJdGVyYXRv
ckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUFDQUE4RDBBOUI3NTlDMDA2NzFFOTAg
LyogRE9NTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2NTQsNyArMjU2NTIsNiBAQAog
CQkJCTA3M0JFMzREMTdEMTdFN0EwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nl
c3NDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhDNzUw
IC8qIEpTTm9kZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENENjAw
Q0E0RkMxIC8qIEpTTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNCNzczNjIwQzE3
ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE3NTBEOEUwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0Q5QzJDMzBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQUQyMEIxOEQxOEU5RDIzNzAwNUE4MDgzIC8qIEpTTm9kZUxpc3RDdXN0
b20uaCBpbiBIZWFkZXJzICovLApAQCAtMjg5MDUsNiArMjg5MDIsNyBAQAogCQkJCUJDMkVENkJD
MEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkRBMTVFOUQxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkRGN0U5QzMxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4M0YxMjA2QjFCOEMxMDQ3MDBENzVGNjMgLyogSlNO
b2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RTlGMTJCMDNFRTEw
MDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGREVBQUFGMzEyQjAyRUU0MDBEQ0YzM0IgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVFQTUxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9Db250ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjkxODIsNiArMjkxODAsNyBAQAog
CQkJCTUxMUVGMkQxMTdGMEZERjEwMEU0RkExNiAvKiBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkM4MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQk9w
ZW5EQlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRUYyQzkxN0YwRkQzNTAwRTRG
QTE2IC8qIEpTSURCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MzA2RUZGMTFCOEJD
RUE1MDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MTFFRjJDQTE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTFFRjJDQjE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJWZXJzaW9uQ2hhbmdl
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2QzQ5RjMwRDdEQkEwNTAwRkZBNTU4IC8q
IEpTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5MjQ3LDggKzI5MjQ2
LDYgQEAKIAkJCQkxNERDMEQzNzA5RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDRDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQxMTVCNzIwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZp
bHRlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0I3NzM2MTBDMTc4NTNEMDAxMzJCQTQgLyog
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQjc3MzYzMEMx
Nzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUE3NTBEOEQwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNzUwREQ0MEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMjBDMTdCNjlFMDA1QzkwQTIgLyog
SlNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5Nzg1LDcgKzI5NzgyLDYgQEAKIAkJ
CQkyNjc3MjYwMDFBNUIzQUQ5MDAzQzI0REQgLyogTkZBVG9ERkEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNFRjQzRTAwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QzRBODAwMDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTg1NEZFNzMwMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmls
dGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzM0MEEyMjk3QkUwMDU4
RDdBRCAvKiBOb2RlSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEZGQzAyMkIxNjQz
QjcxMDAwNEUxNjM4IC8qIE5vZGVSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25k
aXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbi5jcHAKaW5kZXggYWRmZDhjMTg5OGYzNzU1ZDRmNTk3MmQ5MjI3YWRjYjU5
N2QxZDdhZi4uZTBhYmI3YzY0ZTFmMDY0MTc5ZTAwOWI1ZmQ5ZDMxN2NmN2FhOTQ4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKQEAgLTI5LDcgKzI5LDcgQEAgR09iamVjdE5vZGVGaWx0
ZXJDb25kaXRpb246On5HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbigpCiAgICAgZ19vYmplY3Rf
c2V0X2RhdGEoR19PQkpFQ1QobV9maWx0ZXIuZ2V0KCkpLCAid2Via2l0LWNvcmUtbm9kZS1maWx0
ZXIiLCBudWxscHRyKTsKIH0KIAotc2hvcnQgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb246OmFj
Y2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQgR09iamVj
dE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKICAg
ICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDYxMjgwMjVmZmM4N2NhYTNkMTIxNjZiM2E5Zjg4
OGI1ZWFlMDk5OGMuLjUzNjZhNTM4YzU0MWE5MzkxOGI5OTFiY2I3N2ZkYzhjMjgyZTc0NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0
ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmpl
Y3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbihmaWx0ZXIp
KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUq
LCBOb2RlKikgY29uc3Q7CisgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKE5vZGUqKSBjb25z
dCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbihX
ZWJLaXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcAppbmRleCAyNThmYzRhZDhm
OWRiZDNkMDY2NGE0M2MzZDBmNDk3YzQwZjhiNWRiLi5kODBmZTcwMmYxNDUxNzEwODE1ZjI3NTE2
YmEyZjQxODEyMGRmMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNs
dWRlICJXZWJLaXRET01Ob2RlRmlsdGVyLmgiCiAKICNpbmNsdWRlICJHT2JqZWN0Tm9kZUZpbHRl
ckNvbmRpdGlvbi5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKKyNpbmNsdWRlICJOYXRpdmVO
b2RlRmlsdGVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZS5oIgogI2luY2x1ZGUgIldlYktp
dERPTU5vZGVGaWx0ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTcy
LDcgKzcyLDcgQEAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNvcmUoV2ViS2l0RE9NTm9k
ZUZpbHRlciogbm9kZUZpbHRlcikKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlRmlsdGVyPiBj
b3JlTm9kZUZpbHRlciA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGVGaWx0ZXIqPihnX29iamVj
dF9nZXRfZGF0YShHX09CSkVDVChub2RlRmlsdGVyKSwgIndlYmtpdC1jb3JlLW5vZGUtZmlsdGVy
IikpOwogICAgIGlmICghY29yZU5vZGVGaWx0ZXIpIHsKLSAgICAgICAgY29yZU5vZGVGaWx0ZXIg
PSBXZWJDb3JlOjpOb2RlRmlsdGVyOjpjcmVhdGUoV2ViQ29yZTo6R09iamVjdE5vZGVGaWx0ZXJD
b25kaXRpb246OmNyZWF0ZShub2RlRmlsdGVyKSk7CisgICAgICAgIGNvcmVOb2RlRmlsdGVyID0g
V2ViQ29yZTo6TmF0aXZlTm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6OkdPYmplY3ROb2RlRmls
dGVyQ29uZGl0aW9uOjpjcmVhdGUobm9kZUZpbHRlcikpOwogICAgICAgICBub2RlRmlsdGVyTWFw
KCkuYWRkKGNvcmVOb2RlRmlsdGVyLmdldCgpLCBub2RlRmlsdGVyKTsKICAgICAgICAgZ19vYmpl
Y3Rfd2Vha19yZWYoR19PQkpFQ1Qobm9kZUZpbHRlciksIG5vZGVGaWx0ZXJPYmplY3REZXN0cm95
ZWRDYWxsYmFjaywgY29yZU5vZGVGaWx0ZXIuZ2V0KCkpOwogICAgICAgICBnX29iamVjdF9zZXRf
ZGF0YShHX09CSkVDVChub2RlRmlsdGVyKSwgIndlYmtpdC1jb3JlLW5vZGUtZmlsdGVyIiwgY29y
ZU5vZGVGaWx0ZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMWI1ZTk1YjJjN2I0ZTU1MWJhYmMyOTc5MTBiNDli
YTczYjJlYWEzYS4uYjVjNWZmMmU1NjAwNWY3Y2YzNjAzNzQ0OGQ1OWE2ZWViM2JhNWQwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3Bw
CkBAIC0xMTQsNyArMTE0LDYgQEAKICNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05v
ZGVDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiCiAjaW5j
bHVkZSAiSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVJdGVyYXRvckN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlTGlzdEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKaW5kZXggZDk4ZTYzMjZjYjNlNDkz
ODhiNTIzNjdlNGY2Mjk0MDdjOGM3YTYxMy4uYzQ3ZWY0MGYwYTE2ZDk3Y2I4NWExZTU0MGVkMTI1
MWZkZTcwZTNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxs
YmFja0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tE
YXRhLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2lu
Y2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4
ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAgICAgCkBAIC02NCwxNCArNjUsMTggQEAgSlNWYWx1
ZSBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2soSlNWYWx1ZSB0aGlzVmFsdWUsIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyJgogICAgICAgICBjYWxsVHlwZSA9IGNhbGxiYWNrKCktPm1ldGhvZFRh
YmxlKCktPmdldENhbGxEYXRhKGNhbGxiYWNrKCksIGNhbGxEYXRhKTsKICAgICB9CiAgICAgaWYg
KGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICBpZiAobWV0aG9kID09IENhbGxi
YWNrVHlwZTo6RnVuY3Rpb24pCisgICAgICAgIGlmIChtZXRob2QgPT0gQ2FsbGJhY2tUeXBlOjpG
dW5jdGlvbikgeworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBFeGNlcHRpb246OmNy
ZWF0ZShleGVjLT52bSgpLCBjcmVhdGVUeXBlRXJyb3IoZXhlYykpOwogICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghZnVuY3Rpb25OYW1l
LmlzTnVsbCgpKTsKICAgICAgICAgZnVuY3Rpb24gPSBjYWxsYmFjaygpLT5nZXQoZXhlYywgZnVu
Y3Rpb25OYW1lKTsKICAgICAgICAgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2Fs
bERhdGEpOwotICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKQorICAgICAgICBp
ZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7CisgICAgICAgICAgICByZXR1cm5lZEV4Y2Vw
dGlvbiA9IEV4Y2VwdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGNyZWF0ZVR5cGVFcnJvcihleGVj
KSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgQVNTRVJUKCFmdW5jdGlvbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDdiNDExOWE1YTVkMGI3Mjg5ZjNlMTM2OGQ5MTBkNzZhNzk4ZDhiNzcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDg2ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChw
bWtAcG9zdC5jb20pCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIK
LQotI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIkpTTm9kZS5o
IgotI2luY2x1ZGUgIkpTTm9kZUZpbHRlci5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKLSNp
bmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1KU05vZGVGaWx0
ZXJDb25kaXRpb246OkpTTm9kZUZpbHRlckNvbmRpdGlvbihWTSYsIE5vZGVGaWx0ZXIqIG93bmVy
LCBKU1ZhbHVlIGZpbHRlcikKLSAgICA6IG1fZmlsdGVyKGZpbHRlci5pc09iamVjdCgpID8gV2Vh
azxKU09iamVjdD4oanNDYXN0PEpTT2JqZWN0Kj4oZmlsdGVyKSwgJm1fd2Vha093bmVyLCBvd25l
cikgOiBudWxscHRyKQotewotfQotCi1zaG9ydCBKU05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2Vw
dE5vZGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIE5vZGUqIGZpbHRlck5vZGUpIGNvbnN0Ci17Ci0g
ICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7Ci0KLSAgICBpZiAoIW1fZmlsdGVyKQotICAgICAg
ICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLQotICAgIC8vIEV4ZWMgaXMgbnVs
bCBpZiB3ZSd2ZSBiZWVuIGNhbGxlZCBmcm9tIGEgbm9uLUphdmFTY3JpcHQgbGFuZ3VhZ2UgYW5k
IHRoZSBkb2N1bWVudAotICAgIC8vIGlzIG5vIGxvbmdlciBhYmxlIHRvIHJ1biBKYXZhU2NyaXB0
IChlLmcuLCBpdCdzIGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBmcmFtZSkuCi0gICAgaWYgKCFleGVj
KQotICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKLQotICAgIEpTVmFs
dWUgZmlsdGVyID0gbV9maWx0ZXIuZ2V0KCk7Ci0gICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAg
Q2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmaWx0ZXIsIGNhbGxEYXRhKTsKLSAgICBp
ZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7Ci0gICAgICAgIGZpbHRlciA9IGZpbHRlci5n
ZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAiYWNjZXB0Tm9kZSIpKTsKLSAg
ICAgICAgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmaWx0ZXIsIGNhbGxEYXRhKTsKLSAgICAgICAg
aWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICAgICAgZXhlYy0+dm0oKS50
aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIk5vZGVGaWx0ZXIgb2Jq
ZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbiIpKTsKLSAgICAgICAgICAg
IHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICAvLyBGSVhNRTogVGhlIG5vZGUgc2hv
dWxkIGhhdmUgdGhlIHByb3RvdHlwZSBjaGFpbiB0aGF0IGNhbWUgZnJvbSBpdHMgZG9jdW1lbnQs
IG5vdAotICAgIC8vIHdoYXRldmVyIHByb3RvdHlwZSBjaGFpbiBtaWdodCBiZSBvbiB0aGUgd2lu
ZG93IHRoaXMgZmlsdGVyIGNhbWUgZnJvbS4gQnVnIDI3NjYyCi0gICAgYXJncy5hcHBlbmQodG9K
UyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBmaWx0ZXJO
b2RlKSk7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9k
ZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKLQotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpjYWxs
KGV4ZWMsIGZpbHRlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2ZpbHRlci5nZXQoKSwgYXJncyk7
Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRl
cjo6RklMVEVSX1JFSkVDVDsKLQotICAgIGludCBpbnRSZXN1bHQgPSByZXN1bHQudG9JbnQzMihl
eGVjKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2Rl
RmlsdGVyOjpGSUxURVJfUkVKRUNUOwotCi0gICAgcmV0dXJuIGludFJlc3VsdDsKLX0KLQotYm9v
bCBKU05vZGVGaWx0ZXJDb25kaXRpb246OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCi17Ci0gICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KGNv
bnRleHQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhNmExYmUzMTc4OTlhNWQxMWFmNzMyMmUwOTI2ZjY0MjExNjgwM2MxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTYgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBt
a0Bwb3N0LmNvbSkKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQot
I2lmbmRlZiBKU05vZGVGaWx0ZXJDb25kaXRpb25faAotI2RlZmluZSBKU05vZGVGaWx0ZXJDb25k
aXRpb25faAotCi0jaW5jbHVkZSAiTm9kZUZpbHRlckNvbmRpdGlvbi5oIgotI2luY2x1ZGUgPGhl
YXAvV2Vhay5oPgotI2luY2x1ZGUgPGhlYXAvV2Vha0lubGluZXMuaD4KLSNpbmNsdWRlIDxydW50
aW1lL0pTQ0lubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFz
cyBOb2RlOwotICAgIGNsYXNzIE5vZGVGaWx0ZXI7Ci0KLSAgICBjbGFzcyBKU05vZGVGaWx0ZXJD
b25kaXRpb24gOiBwdWJsaWMgTm9kZUZpbHRlckNvbmRpdGlvbiB7Ci0gICAgcHVibGljOgotICAg
ICAgICBzdGF0aWMgUmVmPEpTTm9kZUZpbHRlckNvbmRpdGlvbj4gY3JlYXRlKEpTQzo6Vk0mIHZt
LCBOb2RlRmlsdGVyKiBvd25lciwgSlNDOjpKU1ZhbHVlIGZpbHRlcikKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNOb2RlRmlsdGVyQ29uZGl0aW9uKHZtLCBv
d25lciwgZmlsdGVyKSk7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEpTTm9k
ZUZpbHRlckNvbmRpdGlvbihKU0M6OlZNJiwgTm9kZUZpbHRlciogb3duZXIsIEpTQzo6SlNWYWx1
ZSBmaWx0ZXIpOwotCi0gICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNT
dGF0ZSosIE5vZGUqKSBjb25zdDsKLQotICAgICAgICBjbGFzcyBXZWFrT3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgewotICAgICAgICAgICAgdmlydHVhbCBib29sIGlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKLSAgICAgICAgfTsKLSAgICAgICAgV2Vha093bmVyIG1f
d2Vha093bmVyOwotICAgICAgICBtdXRhYmxlIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX2Zp
bHRlcjsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBKU05v
ZGVGaWx0ZXJDb25kaXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckN1c3RvbS5jcHAKaW5kZXggNzA1MzNkYjE2NDkwZjMwMzUyODhiMGUzMTYxMDVl
ZTNlN2Y2NDgwMC4uOWYzMDBjYWMyOGFhZmE1NmVjZDdjM2ZiNDM0NzlhYzg5YzJjNDJiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMCw0MSArMTAsNTggQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNOb2RlRmlsdGVyLmgiCiAKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24u
aCIKKyNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgorI2luY2x1ZGUgIkpTTm9kZS5oIgorI2lu
Y2x1ZGUgIk5vZGVGaWx0ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTTm9k
ZUZpbHRlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRv
cikKLXsKLSAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJmltcGwoKSk7Ci19Cit1c2luZyBuYW1l
c3BhY2UgSlNDOwogCi1SZWZQdHI8Tm9kZUZpbHRlcj4gSlNOb2RlRmlsdGVyOjp0b1dyYXBwZWQo
SlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKKy8vIEZJWE1FOiBUaGUgYmluZGluZ3Mg
Z2VuZXJhdG9yIGlzIGN1cnJlbnRseSBub3QgYWJsZSB0byBnZW5lcmF0ZQorLy8gY2FsbGJhY2sg
ZnVuY3Rpb24gY2FsbHMgaWYgdGhleSByZXR1cm4gc29tZXRoaW5nIGVsc2UgdGhhbiBhCisvLyBi
b29sZWFuLgordWludDE2X3QgSlNOb2RlRmlsdGVyOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpCiB7
Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTTm9kZUZpbHRlcjo6aW5mbygpKSkKLSAgICAgICAg
cmV0dXJuICZKU0M6OmpzQ2FzdDxKU05vZGVGaWx0ZXIqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBs
KCk7CisgICAgUmVmPEpTTm9kZUZpbHRlcj4gcHJvdGVjdCgqdGhpcyk7CisKKyAgICBKU0xvY2tI
b2xkZXIgbG9jayhtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT52bSgpKTsKKworICAgIEV4ZWNTdGF0
ZSogZXhlYyA9IG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKKyAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgbV9kYXRh
LT5nbG9iYWxPYmplY3QoKSwgbm9kZSkpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
KyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CisKKyAgICBOYWtlZFB0
cjxFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIEpTVmFsdWUgdmFsdWUgPSBtX2Rh
dGEtPmludm9rZUNhbGxiYWNrKGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6OkZ1
bmN0aW9uT3JPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImFjY2VwdE5vZGUi
KSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAg
ICAgICAvLyBSZXRocm93IGV4Y2VwdGlvbi4KKyAgICAgICAgZXhlYy0+dm0oKS5zZXRFeGNlcHRp
b24ocmV0dXJuZWRFeGNlcHRpb24pOworCisgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxU
RVJfUkVKRUNUOworICAgIH0KIAotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgdWludDE2X3QgcmVzdWx0ID0gdG9VSW50MTYoZXhlYywgdmFs
dWUsIE5vcm1hbENvbnZlcnNpb24pOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CiAKLSAgICBSZWZQdHI8Tm9k
ZUZpbHRlcj4gcmVzdWx0ID0gTm9kZUZpbHRlcjo6Y3JlYXRlKCk7Ci0gICAgcmVzdWx0LT5zZXRD
b25kaXRpb24oSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUodm0sIHJlc3VsdC5nZXQoKSwg
dmFsdWUpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggM2JlMTU2
MzZhNWE4ZGZhM2I1NzFjY2E4NDFiZDJkMzA1YWVkZTYyOS4uNmMzNzc2MWIxM2U2NzlhYjBjNmIx
ZGRlZmQwNjc3Y2RjOThhY2Y5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtNDMsNyArNDMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmpDTm9k
ZUZpbHRlckNvbmRpdGlvbihmaWx0ZXIpKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwg
c2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICAgICAg
dmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKE5vZGUqKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGlkIDxET01Ob2RlRmlsdGVyPiBmaWx0ZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVy
Q29uZGl0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRl
ckNvbmRpdGlvbi5tbQppbmRleCAyNGI1MTkyZmY0MTMwMDUzNmExNWEwNjBmMTkyNWZhYzU3YTEz
M2MyLi45ODRhMWFhYTVmOTU1ZGQxM2VjMjQyNDU3MTUyNzlhYjliYzU2ZjcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRp
b24ubW0KQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1zaG9ydCBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShF
eGVjU3RhdGUqLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQgT2JqQ05vZGVGaWx0ZXJDb25kaXRp
b246OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIW5vZGUpCiAgICAg
ICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXgg
YmU1ZDA2NWQwMDRkMGY5ODA2YjgwMDMzNjdmMWQ0MDE1ZjY2MDM1Mi4uOTVmYzEwMWY0M2U3Y2Vh
OGZhMWM2YWE0MDgyZTY5MGRkOGFmZDk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC0zMDUsNyArMzA1
LDcgQEAgc3ViIFNraXBGdW5jdGlvbiB7CiAgICAgIyBzZXF1ZW5jZTxUPiBwYXJhbWV0ZXJzLCBi
ZWNhdXNlIHRoaXMgY29kZSBnZW5lcmF0b3IgZG9lc24ndCBrbm93IGhvdyB0byBhdXRvLWdlbmVy
YXRlCiAgICAgIyBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIG9yIHNlcXVlbmNlPFQ+LiBTa2lwIEV2
ZW50TGlzdGVuZXJzIGJlY2F1c2UgdGhleSBhcmUgaGFuZGxlZCBlbHNld2hlcmUuCiAgICAgZm9y
ZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAgICBpZiAo
JGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJHBhcmFtLT50eXBlKSB8fAorICAg
ICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2Uo
JHBhcmFtLT50eXBlKSB8fAogICAgICAgICAgICAgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2xhbXAifSB8fAogICAgICAgICAgICAgJHBhcmFtLT50eXBlIGVxICJNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyIiB8fAogICAgICAgICAgICAgJHBhcmFtLT50eXBlIGVxICJFdmVudExpc3RlbmVy
IiB8fApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCBlOWU3NDUwMjM3MzZiOTU3MDAwYmM0NTdjYWMxNjlmYTIyYzZjYmI4Li42
N2Q2OTE3OTZlMjMxMjMyMjY0NjE2YzJhZTliOTlmMjYxNjUwYjcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzQ3NSw2
ICszNDc1LDggQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICAjIERlc3RydWN0b3IK
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgfiRjbGFzc05hbWUoKTtcbiIp
OwogCisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBKU0NhbGxiYWNrRGF0YSogY2FsbGJh
Y2tEYXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9XG4iKTsKKwogICAgICMgQ29uc3RydWN0b3Igb2Jq
ZWN0IGdldHRlci4KICAgICBpZiAoQHskaW50ZXJmYWNlLT5jb25zdGFudHN9KSB7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1
Y3RvcihKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIik7CkBAIC0zNTE2LDYgKzM1
MTgsMTAgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7XG4iKTsKICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAifTtcblxuIik7CiAKKyAgICAjIHRvSlMoKS4KKyAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiaW5s
aW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCAkaW50ZXJmYWNlTmFtZSYgaW1wbCkgeyByZXR1cm4gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfVxuXG4iKTsKKwogICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJ9IC8vIG5hbWVzcGFjZSBXZWJDb3JlXG5cbiIpOwogICAgIG15ICRjb25kaXRpb25h
bFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRl
cmZhY2UpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gJHtjb25kaXRpb25h
bFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwpAQCAtMzY4OSw2ICszNjk1LDE0
IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KICAgICAgICAgfQogICAgIH0K
IAorICAgICMgdG9KUygpIGltcGxlbWVudGF0aW9uLgorICAgIHB1c2goQGltcGxDb250ZW50LCAi
XG5KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
JGludGVyZmFjZU5hbWUqIGltcGwpXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OworICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghaW1wbCB8fCAhc3RhdGljX2Nhc3Q8
JHtjbGFzc05hbWV9Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKVxuIik7CisgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHJldHVybiBqc051bGwoKTtcblxuIik7CisgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuIHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSY+KCppbXBsKS5j
YWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTtcblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ9XG4iKTsKKwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG59XG4iKTsKICAgICBteSAkY29u
ZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmlu
ZygkaW50ZXJmYWNlKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQppbmRleCBj
NWI4Nzc5Mzk2NzU1YzRhZDAzY2ViMzgzNjhjMWYyM2U5NzJjYWE2Li42MzVkMTMzMzM2OWE5MzBl
NGUxZWUwODZlNzU2NmFlMTg5MmEzZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTQyMCw2ICs0MjAsNyBAQCBz
dWIgR2V0SW1wbENsYXNzTmFtZQogewogICAgIG15ICRuYW1lID0gc2hpZnQ7CiAKKyAgICByZXR1
cm4gIk5hdGl2ZU5vZGVGaWx0ZXIiIGlmICRuYW1lIGVxICJOb2RlRmlsdGVyIjsKICAgICByZXR1
cm4gIkRPTVdpbmRvdyIgaWYgJG5hbWUgZXEgIkFic3RyYWN0VmlldyI7CiAgICAgcmV0dXJuICRu
YW1lOwogfQpAQCAtNjkzLDcgKzY5NCw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICB9
CiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICRpbXBsSW5jbHVk
ZXN7Ik5vZGVGaWx0ZXIuaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siTmF0aXZlTm9k
ZUZpbHRlci5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJPYmpDTm9kZUZpbHRlckNv
bmRpdGlvbi5oIn0gPSAxOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTU1Nyw3ICsxNTU4
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBteSAkcGFy
YW1OYW1lID0gJG5lZWRzQ3VzdG9teyJOb2RlRmlsdGVyIn07CiAgICAgICAgICAgICAgICAgcHVz
aChAZnVuY3Rpb25Db250ZW50LCAiICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlRmlsdGVyPiBuYXRp
dmVOb2RlRmlsdGVyO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50
LCAiICAgIGlmICgkcGFyYW1OYW1lKVxuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rp
b25Db250ZW50LCAiICAgICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6Tm9kZUZpbHRl
cjo6Y3JlYXRlKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFt
TmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAg
ICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6TmF0aXZlTm9kZUZpbHRlcjo6Y3JlYXRl
KFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFtTmFtZSkpO1xu
Iik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlck5hbWVzLCAi
ZWMiKSBpZiAkcmFpc2VzRXhjZXB0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCmluZGV4IDRiZDU5
N2Q3YjAxMzNiZjFlODNhOThhY2FmNzQwMDgyOGExN2Q2OGYuLjBkODhlOTJlYTIxNDMyNDdiNzBi
ZDliODE0Y2Q5YjUzYTU0OTMyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcApAQCAtMjM4LDYgKzIz
OCwxNSBAQCBib29sIEpTVGVzdENhbGxiYWNrOjpjYWxsYmFja1JlcXVpcmVzVGhpc1RvUGFzcyhp
bnQgbG9uZ1BhcmFtLCBUZXN0Tm9kZSogdGVzdE5vZAogICAgIHJldHVybiAhcmV0dXJuZWRFeGNl
cHRpb247CiB9CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqLCBUZXN0Q2FsbGJhY2sqIGltcGwpCit7CisgICAgaWYgKCFpbXBsIHx8ICFzdGF0
aWNfY2FzdDxKU1Rlc3RDYWxsYmFjayY+KCppbXBsKS5jYWxsYmFja0RhdGEoKSkKKyAgICAgICAg
cmV0dXJuIGpzTnVsbCgpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTVGVzdENhbGxiYWNr
Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpOworCit9CisKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suaAppbmRleCBhMjJiNzBi
M2IxOTNiMzI0MzQ0N2E5OGVjNDY2NDZmOWFmOTMzNGYwLi5jZGQ3Mzc3MzA0NDg2Yzg1ZWUxNmFl
MzgzNmZhMmE1YTk2YjQ0NTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suaApAQCAtNDAsNiArNDAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAgICAgdmlydHVhbCB+SlNUZXN0Q2FsbGJhY2so
KTsKKyAgICBKU0NhbGxiYWNrRGF0YSogY2FsbGJhY2tEYXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9
CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwogCiAgICAgLy8gRnVuY3Rpb25zCkBAIC01OCw2ICs1OSw5IEBAIHBy
aXZhdGU6CiAgICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKIH07CiAKK0pTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q2FsbGJhY2sqKTsK
K2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdENhbGxiYWNrJiBpbXBsKSB7IHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxi
YWNrRnVuY3Rpb24uY3BwCmluZGV4IDBjNDVjM2ZkNDJkOTY3NjQxZDJiY2Q3YmE3NWJlMGFhYzQ3
YzhjMDEuLjg5N2M3YmRkZDU0N2Y0MDdlMDdlY2NmNmQ1OGVkZGM1ZTI4YWM0NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFj
a0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTE4OSw2ICsxODksMTUgQEAgYm9vbCBK
U1Rlc3RDYWxsYmFja0Z1bmN0aW9uOjpjYWxsYmFja1JlcXVpcmVzVGhpc1RvUGFzcyhpbnQgbG9u
Z1BhcmFtLCBUZXN0Tm9kZSoKICAgICByZXR1cm4gIXJldHVybmVkRXhjZXB0aW9uOwogfQogCitK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVz
dENhbGxiYWNrRnVuY3Rpb24qIGltcGwpCit7CisgICAgaWYgKCFpbXBsIHx8ICFzdGF0aWNfY2Fz
dDxKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uJj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKQorICAgICAg
ICByZXR1cm4ganNOdWxsKCk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNUZXN0Q2FsbGJh
Y2tGdW5jdGlvbiY+KCppbXBsKS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKKworfQorCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJh
Y2tGdW5jdGlvbi5oCmluZGV4IDNmZTNmMjA4ZGFlNTFiMjhlNmU5YzcwZGQ1ZGM4ZTZmYjVlZGY1
OTIuLjQxMmUyMjk1YzcxOGVhMWM4YmMwNTIzOThkY2YxMmZjOTZkZTExOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1
bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENhbGxiYWNrRnVuY3Rpb24uaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsgfQogCiAgICAgdmlydHVhbCB+SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbigpOworICAg
IEpTQ2FsbGJhY2tEYXRhKiBjYWxsYmFja0RhdGEoKSB7IHJldHVybiBtX2RhdGE7IH0KIAogICAg
IC8vIEZ1bmN0aW9ucwogICAgIHZpcnR1YWwgYm9vbCBjYWxsYmFja1dpdGhOb1BhcmFtKCk7CkBA
IC01Nyw2ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKIH07
CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
LCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiopOworaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q2Fs
bGJhY2tGdW5jdGlvbiYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZp
bXBsKTsgfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1BF
RUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9u
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDY3NDJmYjg4
ZjhhMDVjNGM1NDYyZjJlNDFhNzVlZTcxNzkyYjU3NmMuLjU1Njg0NzA1OTRmYWUwNzA1NzQxMjRk
OGVkODg0NDMxZWQwMThkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtMTA4
LDcgKzEwOCw2IEBACiAjaW5jbHVkZSAiTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAiCiAjaW5jbHVk
ZSAiTmFtZWROb2RlTWFwLmNwcCIKICNpbmNsdWRlICJOb2RlLmNwcCIKLSNpbmNsdWRlICJOb2Rl
RmlsdGVyLmNwcCIKICNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCIKICNpbmNsdWRl
ICJOb2RlSXRlcmF0b3IuY3BwIgogI2luY2x1ZGUgIk5vZGVPclN0cmluZy5jcHAiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBhMzRjOWZmNGI1MTU5
ZmY5NjI0NGQ2Mjc3MzA2YTU5MWI4NDgwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZU5vZGVGaWx0ZXIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitOYXRpdmVOb2RlRmlsdGVyOjpOYXRpdmVOb2RlRmlsdGVy
KFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNvbmRpdGlvbikKKyAgICA6IG1fY29uZGl0
aW9uKGNvbmRpdGlvbikKK3sgfQorCit1aW50MTZfdCBOYXRpdmVOb2RlRmlsdGVyOjphY2NlcHRO
b2RlKE5vZGUqIG5vZGUpCit7CisgICAgLy8gY2FzdCB0byBzaG9ydCBzaWxlbmNlcyAiZW51bWVy
YWwgYW5kIG5vbi1lbnVtZXJhbCB0eXBlcyBpbiByZXR1cm4iIHdhcm5pbmcKKyAgICByZXR1cm4g
bV9jb25kaXRpb24gPyBtX2NvbmRpdGlvbi0+YWNjZXB0Tm9kZShub2RlKSA6IHN0YXRpY19jYXN0
PHVpbnQxNl90PihGSUxURVJfQUNDRVBUKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IwNzhlYWJjNDYw
MzY1MGYzNTM0YTc3ZWIyZjQ4MTMzMWYyNGE5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgTmF0aXZlTm9kZUZpbHRlcl9oCisjZGVmaW5lIE5hdGl2ZU5vZGVGaWx0ZXJf
aAorCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorI2luY2x1ZGUgIk5vZGVGaWx0ZXJDb25kaXRp
b24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOYXRpdmVOb2RlRmlsdGVyIGZp
bmFsIDogcHVibGljIE5vZGVGaWx0ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TmF0aXZl
Tm9kZUZpbHRlcj4gY3JlYXRlKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNvbmRpdGlv
bikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdGl2ZU5vZGVGaWx0ZXIo
V1RGOjptb3ZlKGNvbmRpdGlvbikpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPE5hdGl2ZU5v
ZGVGaWx0ZXI+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBO
YXRpdmVOb2RlRmlsdGVyKCkpOworICAgIH0KKworICAgIHZpcnR1YWwgdWludDE2X3QgYWNjZXB0
Tm9kZShOb2RlKikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldENvbmRpdGlvbihSZWZQdHI8Tm9k
ZUZpbHRlckNvbmRpdGlvbj4mJiBjb25kaXRpb24pIHsgQVNTRVJUKCFtX2NvbmRpdGlvbik7IG1f
Y29uZGl0aW9uID0gY29uZGl0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTmF0aXZl
Tm9kZUZpbHRlcihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4mJik7CisKKyAgICBOYXRpdmVO
b2RlRmlsdGVyKCkgeyB9CisKKyAgICBSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gbV9jb25k
aXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBOYXRpdmVO
b2RlRmlsdGVyX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4ZGFiYzU0MGE3MGU3NTQ4YTk5NGEyNzQxYjQwMzIzMjc3YzcxZTRjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlRmlsdGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwMCBGcmVkZXJpayBIb2xsamVuIChmcmVkZXJpay5ob2xsamVuQGhpZy5u
bykKLSAqIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICog
Q29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQot
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCi0KLSNp
bmNsdWRlICJOb2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc2hvcnQgTm9kZUZpbHRl
cjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0Ci17
Ci0gICAgLy8gY2FzdCB0byBzaG9ydCBzaWxlbmNlcyAiZW51bWVyYWwgYW5kIG5vbi1lbnVtZXJh
bCB0eXBlcyBpbiByZXR1cm4iIHdhcm5pbmcKLSAgICByZXR1cm4gbV9jb25kaXRpb24gPyBtX2Nv
bmRpdGlvbi0+YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZSkgOiBzdGF0aWNfY2FzdDxzaG9ydD4oRklM
VEVSX0FDQ0VQVCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZp
bHRlci5oCmluZGV4IDU3Yzk1NWFmN2QzYjYyYmVhOGQxMjZmN2Q1MDA2MzM0MDAyNWFmZjIuLjA2
MTEyOWFlMjA5OGZkZGQyZWVkYTcxYzQ2NDcxM2U5MTk1MDIwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVG
aWx0ZXIuaApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwMCBGcmVkZXJpayBI
b2xsamVuIChmcmVkZXJpay5ob2xsamVuQGhpZy5ubykKICAqIENvcHlyaWdodCAoQykgMjAwMSBQ
ZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBX
ZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4
LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwOCwgMjAwOSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDcwICsyNSw1MCBAQAogI2lmbmRlZiBOb2RlRmlsdGVy
X2gKICNkZWZpbmUgTm9kZUZpbHRlcl9oCiAKLSNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIK
LSNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ICAgIGNsYXNzIE5vZGVGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb2RlRmlsdGVyPiB7Ci0g
ICAgcHVibGljOgotICAgICAgICAvKioKLSAgICAgICAgICogVGhlIGZvbGxvd2luZyBjb25zdGFu
dHMgYXJlIHJldHVybmVkIGJ5IHRoZSBhY2NlcHROb2RlKCkKLSAgICAgICAgICogbWV0aG9kOgot
ICAgICAgICAgKi8KLSAgICAgICAgZW51bSB7Ci0gICAgICAgICAgICBGSUxURVJfQUNDRVBUID0g
MSwKLSAgICAgICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAyLAotICAgICAgICAgICAgRklMVEVSX1NL
SVAgICA9IDMKLSAgICAgICAgfTsKK2NsYXNzIE5vZGU7CiAKLSAgICAgICAgLyoqCi0gICAgICAg
ICAqIFRoZXNlIGFyZSB0aGUgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIHdoYXRUb1Nob3cgcGFy
YW1ldGVyLgotICAgICAgICAgKiBUaGV5IGFyZSB0aGUgc2FtZSBhcyB0aGUgc2V0IG9mIHBvc3Np
YmxlIHR5cGVzIGZvciBOb2RlLCBhbmQKLSAgICAgICAgICogdGhlaXIgdmFsdWVzIGFyZSBkZXJp
dmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgICogdG8g
dGhlIHZhbHVlIG9mIE5vZGVUeXBlIGZvciB0aGUgZXF1aXZhbGVudCBub2RlIHR5cGUuCi0gICAg
ICAgICAqLwotICAgICAgICBlbnVtIDogdW5zaWduZWQgbG9uZyB7Ci0gICAgICAgICAgICBTSE9X
X0FMTCAgICAgICAgICAgICAgICAgICAgICAgPSAweEZGRkZGRkZGLAotICAgICAgICAgICAgU0hP
V19FTEVNRU5UICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMSwKLSAgICAgICAgICAgIFNI
T1dfQVRUUklCVVRFICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDIsCi0gICAgICAgICAgICBT
SE9XX1RFWFQgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDA0LAotICAgICAgICAgICAg
U0hPV19DREFUQV9TRUNUSU9OICAgICAgICAgICAgID0gMHgwMDAwMDAwOCwKLSAgICAgICAgICAg
IFNIT1dfRU5USVRZX1JFRkVSRU5DRSAgICAgICAgICA9IDB4MDAwMDAwMTAsCi0gICAgICAgICAg
ICBTSE9XX0VOVElUWSAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDIwLAotICAgICAgICAg
ICAgU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICAgID0gMHgwMDAwMDA0MCwKLSAgICAgICAg
ICAgIFNIT1dfQ09NTUVOVCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwODAsCi0gICAgICAg
ICAgICBTSE9XX0RPQ1VNRU5UICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMTAwLAotICAgICAg
ICAgICAgU0hPV19ET0NVTUVOVF9UWVBFICAgICAgICAgICAgID0gMHgwMDAwMDIwMCwKLSAgICAg
ICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01FTlQgICAgICAgICA9IDB4MDAwMDA0MDAsCi0gICAg
ICAgICAgICBTSE9XX05PVEFUSU9OICAgICAgICAgICAgICAgICAgPSAweDAwMDAwODAwCi0gICAg
ICAgIH07CitjbGFzcyBOb2RlRmlsdGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm9kZUZpbHRlcj4g
eworcHVibGljOgorICAgIHZpcnR1YWwgfk5vZGVGaWx0ZXIoKSB7IH0KKyAgICB2aXJ0dWFsIHVp
bnQxNl90IGFjY2VwdE5vZGUoTm9kZSopID0gMDsKIAotICAgICAgICBzdGF0aWMgUmVmPE5vZGVG
aWx0ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+IGNvbmRpdGlvbikK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUZpbHRlcihj
b25kaXRpb24pKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBSZWY8Tm9kZUZpbHRlcj4g
Y3JlYXRlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTm9k
ZUZpbHRlcigpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpF
eGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7Ci0KLSAgICAgICAgLy8gRG8gbm90IGNhbGwgdGhlc2Ug
ZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNjYWZmb2xkaW5nIHRvIHN1cHBvcnQgdGhlIE9iamVj
dGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAvLyBUaGV5IG9wZXJhdGUgaW4gdGhlIG1haW4gdGhy
ZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkgc3dhbGxvdyBKUyBleGNlcHRpb25zLgotICAgICAg
ICBzaG9ydCBhY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0IHsgcmV0dXJuIGFjY2VwdE5vZGUo
ZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG5vZGUpLCBub2RlKTsg
fQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRDb25kaXRpb24oUGFzc1JlZlB0cjxOb2RlRmls
dGVyQ29uZGl0aW9uPiBjb25kaXRpb24pIHsgQVNTRVJUKCFtX2NvbmRpdGlvbik7IG1fY29uZGl0
aW9uID0gY29uZGl0aW9uOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBOb2Rl
RmlsdGVyKFBhc3NSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gY29uZGl0aW9uKSA6IG1fY29u
ZGl0aW9uKGNvbmRpdGlvbikgeyB9Ci0gICAgICAgIE5vZGVGaWx0ZXIoKSB7fQorICAgIC8qCisg
ICAgICogVGhlIGZvbGxvd2luZyBjb25zdGFudHMgYXJlIHJldHVybmVkIGJ5IHRoZSBhY2NlcHRO
b2RlKCkKKyAgICAgKiBtZXRob2Q6CisgICAgICovCisgICAgZW51bSB7CisgICAgICAgIEZJTFRF
Ul9BQ0NFUFQgPSAxLAorICAgICAgICBGSUxURVJfUkVKRUNUID0gMiwKKyAgICAgICAgRklMVEVS
X1NLSVAgICA9IDMKKyAgICB9OwogCi0gICAgICAgIFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9u
PiBtX2NvbmRpdGlvbjsKKyAgICAvKgorICAgICAqIFRoZXNlIGFyZSB0aGUgYXZhaWxhYmxlIHZh
bHVlcyBmb3IgdGhlIHdoYXRUb1Nob3cgcGFyYW1ldGVyLgorICAgICAqIFRoZXkgYXJlIHRoZSBz
YW1lIGFzIHRoZSBzZXQgb2YgcG9zc2libGUgdHlwZXMgZm9yIE5vZGUsIGFuZAorICAgICAqIHRo
ZWlyIHZhbHVlcyBhcmUgZGVyaXZlZCBieSB1c2luZyBhIGJpdCBwb3NpdGlvbiBjb3JyZXNwb25k
aW5nCisgICAgICogdG8gdGhlIHZhbHVlIG9mIE5vZGVUeXBlIGZvciB0aGUgZXF1aXZhbGVudCBu
b2RlIHR5cGUuCisgICAgICovCisgICAgZW51bSA6IHVuc2lnbmVkIGxvbmcgeworICAgICAgICBT
SE9XX0FMTCAgICAgICAgICAgICAgICAgICAgICAgPSAweEZGRkZGRkZGLAorICAgICAgICBTSE9X
X0VMRU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAxLAorICAgICAgICBTSE9XX0FU
VFJJQlVURSAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAyLAorICAgICAgICBTSE9XX1RFWFQg
ICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDA0LAorICAgICAgICBTSE9XX0NEQVRBX1NF
Q1RJT04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAorICAgICAgICBTSE9XX0VOVElUWV9SRUZF
UkVOQ0UgICAgICAgICAgPSAweDAwMDAwMDEwLAorICAgICAgICBTSE9XX0VOVElUWSAgICAgICAg
ICAgICAgICAgICAgPSAweDAwMDAwMDIwLAorICAgICAgICBTSE9XX1BST0NFU1NJTkdfSU5TVFJV
Q1RJT04gICAgPSAweDAwMDAwMDQwLAorICAgICAgICBTSE9XX0NPTU1FTlQgICAgICAgICAgICAg
ICAgICAgPSAweDAwMDAwMDgwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UICAgICAgICAgICAgICAg
ICAgPSAweDAwMDAwMTAwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UX1RZUEUgICAgICAgICAgICAg
PSAweDAwMDAwMjAwLAorICAgICAgICBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAgPSAw
eDAwMDAwNDAwLAorICAgICAgICBTSE9XX05PVEFUSU9OICAgICAgICAgICAgICAgICAgPSAweDAw
MDAwODAwCiAgICAgfTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVGaWx0ZXIuaWRsCmluZGV4IGRlZWUwYWI2MzgyMjFjYzUwNDA5YWFmODllMzQ2MmY4NGEy
ZGMyYWMuLmZiNzM2NDk1ZTkxNDhkNTZmMDA3OGRjMmQxOWVhNTAwNjEzZDY1MDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUZpbHRlci5pZGwKQEAgLTIwLDE2ICsyMCwxMiBAQAogCiAvLyBJbnRyb2R1Y2Vk
IGluIERPTSBMZXZlbCAyOgogWwotICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAotICAgIEpTQ3Vz
dG9tVG9OYXRpdmVPYmplY3QsCiAgICAgT2JqQ1Byb3RvY29sLAotICAgIENQUFB1cmVJbnRlcmZh
Y2UsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIE5vZGVGaWx0
ZXIgeworXSBjYWxsYmFjayBpbnRlcmZhY2UgTm9kZUZpbHRlciB7CiAgICAgLy8gQ29uc3RhbnRz
IHJldHVybmVkIGJ5IGFjY2VwdE5vZGUKLSAgICBjb25zdCBzaG9ydCAgICAgICAgICAgICAgIEZJ
TFRFUl9BQ0NFUFQgICAgICAgICAgICAgICAgICA9IDE7Ci0gICAgY29uc3Qgc2hvcnQgICAgICAg
ICAgICAgICBGSUxURVJfUkVKRUNUICAgICAgICAgICAgICAgICAgPSAyOwotICAgIGNvbnN0IHNo
b3J0ICAgICAgICAgICAgICAgRklMVEVSX1NLSVAgICAgICAgICAgICAgICAgICAgID0gMzsKKyAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxURVJfQUNDRVBUID0gMTsKKyAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBGSUxURVJfUkVKRUNUID0gMjsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBG
SUxURVJfU0tJUCA9IDM7CiAKICAgICAvLyBDb25zdGFudHMgZm9yIHdoYXRUb1Nob3cKICAgICBj
b25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9
IDB4RkZGRkZGRkY7CkBAIC00Niw3ICs0MiwxMCBAQAogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcg
ICAgICAgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMDsKICAgICBj
b25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAgICAgICAgICA9
IDB4MDAwMDA4MDA7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIHNob3J0IGFjY2VwdE5v
ZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBOb2RlIG4pOwotCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKKyAgICBzaG9ydCBh
Y2NlcHROb2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsKKyNlbHNlCisg
ICAgW0N1c3RvbV0gdW5zaWduZWQgc2hvcnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRd
IG9wdGlvbmFsIE5vZGUgbik7CisjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
RmlsdGVyQ29uZGl0aW9uLmNwcAppbmRleCBlNDc4ZDk0OGFhNDQ4YzJjOGVlMjk0ZGE5MjMxOWVm
MWJmYjU3YzAxLi43MmM5ZWUxMjZmODQ2Y2JiNzM4ZGE1ZDkwNDBlMmQ3Y2Y1MDgyOTZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0yOSw3ICsyOSw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc2hvcnQgTm9kZUZpbHRlckNvbmRpdGlvbjo6
YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdAorc2hvcnQgTm9kZUZpbHRl
ckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlKikgY29uc3QKIHsKICAgICByZXR1cm4gTm9kZUZp
bHRlcjo6RklMVEVSX0FDQ0VQVDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRp
dGlvbi5oCmluZGV4IDhiYTM4ZjY5OTEwZGE1YWE0MjgyZDk1ZjRjMzQyYmRmZjNmMGNjZDMuLjJi
OWFiNjhmZGNjM2YyZTY3YzZlNWUyMGIwZTEwNTI1NjAzNTY3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVk
PE5vZGVGaWx0ZXJDb25kaXRpb24+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk5v
ZGVGaWx0ZXJDb25kaXRpb24oKSB7IH0KLSAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2Rl
KEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBzaG9y
dCBhY2NlcHROb2RlKE5vZGUqKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNp
dEFnZ3JlZ2F0ZShKU0M6OlNsb3RWaXNpdG9yJikgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZUl0ZXJhdG9yLmNwcAppbmRleCBlNDM2Yzc4OWJlN2MzODlmOWEwOWI5OTUzNGFiZWE0MzJi
YjVmNWMyLi44ZjI5YWIwMTg4YTk0ODdkNjJmZjU3MTJmZjE5NjFiYjE1NGUyMGRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcApAQCAtODgsNyArODgsNyBAQCBOb2RlSXRlcmF0b3I6
On5Ob2RlSXRlcmF0b3IoKQogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5kZXRhY2hOb2RlSXRlcmF0
b3IodGhpcyk7CiB9CiAKLVJlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSkKK1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKCkK
IHsKICAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0OwogCkBAIC05OCw5ICs5OCw3IEBAIFJlZlB0cjxO
b2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAg
ICAgLy8gSW4gb3RoZXIgd29yZHMsIEZJTFRFUl9SRUpFQ1QgZG9lcyBub3QgcGFzcyBvdmVyIGRl
c2NlbmRhbnRzCiAgICAgICAgIC8vIG9mIHRoZSByZWplY3RlZCBub2RlLiBIZW5jZSwgRklMVEVS
X1JFSkVDVCBpcyB0aGUgc2FtZSBhcyBGSUxURVJfU0tJUC4KICAgICAgICAgUmVmUHRyPE5vZGU+
IHByb3Zpc2lvbmFsUmVzdWx0ID0gbV9jYW5kaWRhdGVOb2RlLm5vZGU7Ci0gICAgICAgIGJvb2wg
bm9kZVdhc0FjY2VwdGVkID0gYWNjZXB0Tm9kZShzdGF0ZSwgcHJvdmlzaW9uYWxSZXN1bHQuZ2V0
KCkpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBz
dGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgYm9vbCBu
b2RlV2FzQWNjZXB0ZWQgPSBhY2NlcHROb2RlKHByb3Zpc2lvbmFsUmVzdWx0LmdldCgpKSA9PSBO
b2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwogICAgICAgICBpZiAobm9kZVdhc0FjY2VwdGVkKSB7
CiAgICAgICAgICAgICBtX3JlZmVyZW5jZU5vZGUgPSBtX2NhbmRpZGF0ZU5vZGU7CiAgICAgICAg
ICAgICByZXN1bHQgPSBwcm92aXNpb25hbFJlc3VsdC5yZWxlYXNlKCk7CkBAIC0xMTIsNyArMTEw
LDcgQEAgUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUq
IHN0YXRlKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVJlZlB0cjxOb2RlPiBOb2RlSXRlcmF0
b3I6OnByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitSZWZQdHI8Tm9kZT4gTm9k
ZUl0ZXJhdG9yOjpwcmV2aW91c05vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiByZXN1bHQ7CiAK
QEAgLTEyMiw5ICsxMjAsNyBAQCBSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpwcmV2aW91c05v
ZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgRklM
VEVSX1JFSkVDVCBkb2VzIG5vdCBwYXNzIG92ZXIgZGVzY2VuZGFudHMKICAgICAgICAgLy8gb2Yg
dGhlIHJlamVjdGVkIG5vZGUuIEhlbmNlLCBGSUxURVJfUkVKRUNUIGlzIHRoZSBzYW1lIGFzIEZJ
TFRFUl9TS0lQLgogICAgICAgICBSZWZQdHI8Tm9kZT4gcHJvdmlzaW9uYWxSZXN1bHQgPSBtX2Nh
bmRpZGF0ZU5vZGUubm9kZTsKLSAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0ZWQgPSBhY2NlcHRO
b2RlKHN0YXRlLCBwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZpbHRlcjo6RklMVEVS
X0FDQ0VQVDsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5v
ZGUocHJvdmlzaW9uYWxSZXN1bHQuZ2V0KCkpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7
CiAgICAgICAgIGlmIChub2RlV2FzQWNjZXB0ZWQpIHsKICAgICAgICAgICAgIG1fcmVmZXJlbmNl
Tm9kZSA9IG1fY2FuZGlkYXRlTm9kZTsKICAgICAgICAgICAgIHJlc3VsdCA9IHByb3Zpc2lvbmFs
UmVzdWx0LnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRl
cmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRleCAwYjlmYmRj
YTBlZDQwZWIwMTY0ZjEwZGI0NjQwNjNhMzY0ZmU3OWNiLi40OTc2NmFkMzMyMTY1MTkzNzZjNmUz
YWZiZTBjZTI3MzI0NDVhM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC00Myw4
ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogICAgICAgICB+Tm9kZUl0
ZXJhdG9yKCk7CiAKLSAgICAgICAgUmVmUHRyPE5vZGU+IG5leHROb2RlKEpTQzo6RXhlY1N0YXRl
Kik7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqKTsK
KyAgICAgICAgUmVmUHRyPE5vZGU+IG5leHROb2RlKCk7CisgICAgICAgIFJlZlB0cjxOb2RlPiBw
cmV2aW91c05vZGUoKTsKICAgICAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgICAgICBOb2RlKiBy
ZWZlcmVuY2VOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VOb2RlLm5vZGUuZ2V0KCk7
IH0KQEAgLTUzLDExICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGFueSBub2RlIGlzIHJlbW92ZWQgZnJvbSB0aGUg
ZG9jdW1lbnQgdHJlZS4KICAgICAgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2RlJik7CiAK
LSAgICAgICAgLy8gRG8gbm90IGNhbGwgdGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNj
YWZmb2xkaW5nIHRvIHN1cHBvcnQgdGhlIE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAv
LyBUaGV5IG9wZXJhdGUgaW4gdGhlIG1haW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkg
c3dhbGxvdyBKUyBleGNlcHRpb25zLgotICAgICAgICBSZWZQdHI8Tm9kZT4gbmV4dE5vZGUoKSB7
IHJldHVybiBuZXh0Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSwgcmVmZXJlbmNlTm9kZSgpKSk7IH0KLSAgICAgICAgUmVmUHRyPE5vZGU+IHByZXZpb3VzTm9k
ZSgpIHsgcmV0dXJuIHByZXZpb3VzTm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9y
bWFsV29ybGQoKSwgcmVmZXJlbmNlTm9kZSgpKSk7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAg
IE5vZGVJdGVyYXRvcihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3cs
IFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKaW5kZXggYzBlYTZjODkwOWYzMDRkZTg3MjFh
NjU3OTExZjBjNTUzZWRkZjhiNS4uMTIwMjVkZTZiOGI0OTQ3M2VmZDdmNzg0MDExZjQxZjc2MTMw
N2I2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKQEAgLTMwLDggKzMwLDggQEAK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHBvaW50ZXJCZWZvcmVSZWZlcmVuY2VOb2RlOwogCi0gICAgW0Nh
bGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIG5leHROb2RlKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlw
dFN0YXRlXSBOb2RlIHByZXZpb3VzTm9kZSgpOworICAgIE5vZGUgbmV4dE5vZGUoKTsKKyAgICBO
b2RlIHByZXZpb3VzTm9kZSgpOwogICAgIHZvaWQgZGV0YWNoKCk7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmF2ZXJzYWwuY3BwCmluZGV4IDFjMjI3MDVlN2ZhN2M0YThkNDkxMDhhYzM4NzIxMzQzZTM4Zjlk
NmEuLjc2M2YxNDFjZTcxNmRjYWNkYjY4MjdhNGVmYmFhYzczZmZhOGI0NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmF2ZXJzYWwuY3BwCkBAIC0zOCw3ICszOCw3IEBAIE5vZGVJdGVyYXRvckJhc2U6Ok5vZGVJ
dGVyYXRvckJhc2UoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0
CiB7CiB9CiAKLXNob3J0IE5vZGVJdGVyYXRvckJhc2U6OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQgTm9kZUl0ZXJhdG9yQmFzZTo6YWNj
ZXB0Tm9kZShOb2RlKiBub2RlKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUbyBoYW5kbGUgWE1M
IHByb3Blcmx5IHdlIHdvdWxkIGhhdmUgdG8gY2hlY2sgbV9leHBhbmRFbnRpdHlSZWZlcmVuY2Vz
LgogCkBAIC00OCw3ICs0OCw3IEBAIHNob3J0IE5vZGVJdGVyYXRvckJhc2U6OmFjY2VwdE5vZGUo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKSBjb25zdAogICAgICAgICByZXR1cm4g
Tm9kZUZpbHRlcjo6RklMVEVSX1NLSVA7CiAgICAgaWYgKCFtX2ZpbHRlcikKICAgICAgICAgcmV0
dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0gICAgcmV0dXJuIG1fZmlsdGVyLT5hY2Nl
cHROb2RlKHN0YXRlLCBub2RlKTsKKyAgICByZXR1cm4gbV9maWx0ZXItPmFjY2VwdE5vZGUobm9k
ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAppbmRl
eCAxNWYwOWUyYWFjYmJiMGEzNDE3MGY4NDUxMGQ0MzVlNzg2Mzg3NDY1Li42YWNmYmRiY2E1ZDNm
NGU4NTkwNWYyNjkxZWYxZmY2ZTFmMTc0ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJhdmVyc2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oCkBAIC00
Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAg
ICAgTm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRU
b1Nob3csIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNl
cyk7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29u
c3Q7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0OwogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgUmVmUHRyPE5vZGU+IG1fcm9vdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNw
cAppbmRleCBkZjAzNGIxN2RiOGU3NzBjNTM4MDQxNGJmODM0NDUxNjhlOGE2MDlmLi4wNTgzNjIw
NmQ2NjU0NzVhMzUzMWQyYmNkMDViOWM3NTE2MDNmMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxr
ZXIuY3BwCkBAIC01NCwyOCArNTQsMjQgQEAgaW5saW5lIE5vZGUqIFRyZWVXYWxrZXI6OnNldEN1
cnJlbnQoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQogICAgIHJldHVybiBtX2N1cnJlbnQuZ2V0KCk7
CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6OnBhcmVudE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
KQorTm9kZSogVHJlZVdhbGtlcjo6cGFyZW50Tm9kZSgpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5v
ZGUgPSBtX2N1cnJlbnQ7CiAgICAgd2hpbGUgKG5vZGUgIT0gcm9vdCgpKSB7CiAgICAgICAgIG5v
ZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSkKLSAgICAgICAgICAg
IHJldHVybiAwOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShz
dGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0
aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgp
KTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FD
Q0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAg
ICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRyZWVX
YWxrZXI6OmZpcnN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtl
cjo6Zmlyc3RDaGlsZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVu
dC0+Zmlyc3RDaGlsZCgpOyBub2RlOyApIHsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3Vs
dCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYg
c3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHNo
b3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBz
d2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsKICAgICAgICAgICAgIGNhc2UgTm9kZUZpbHRlcjo6
RklMVEVSX0FDQ0VQVDoKICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBub2RlLnJlbGVhc2Uo
KTsKQEAgLTk2LDE5ICs5MiwxNyBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIENvbnRhaW5lck5v
ZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgICAgIGlmICghcGFyZW50
IHx8IHBhcmVudCA9PSByb290KCkgfHwgcGFyZW50ID09IG1fY3VycmVudCkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
ICAgIG5vZGUgPSBwYXJlbnQ7CiAgICAgICAgIH0gd2hpbGUgKG5vZGUpOwogICAgIH0KLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6bGFz
dENoaWxkKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Omxhc3RDaGls
ZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudC0+bGFzdENoaWxk
KCk7IG5vZGU7ICkgewotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9k
ZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9k
ZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIHN3aXRjaCAoYWNjZXB0
Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBU
OgogICAgICAgICAgICAgICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFzZSgpOwpAQCAtMTI5LDIz
ICsxMjMsMjEgQEAgTm9kZSogVHJlZVdhbGtlcjo6bGFzdENoaWxkKEpTQzo6RXhlY1N0YXRlKiBz
dGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9
IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgICAgIGlmICghcGFyZW50IHx8IHBhcmVudCA9
PSByb290KCkgfHwgcGFyZW50ID09IG1fY3VycmVudCkKLSAgICAgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIG5vZGUgPSBw
YXJlbnQ7CiAgICAgICAgIH0gd2hpbGUgKG5vZGUpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5n
KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGlu
ZygpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgaWYgKG5vZGUg
PT0gcm9vdCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgd2hpbGUgKDEpIHsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gc2libGluZyA9IG5vZGUt
PnByZXZpb3VzU2libGluZygpOyBzaWJsaW5nOyApIHsKLSAgICAgICAgICAgIHNob3J0IGFjY2Vw
dE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBzaWJsaW5nLmdldCgpKTsKLSAgICAgICAg
ICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9k
ZShzaWJsaW5nLmdldCgpKTsKICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3VsdCkg
ewogICAgICAgICAgICAgICAgIGNhc2UgTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDoKICAgICAg
ICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gc2libGluZy5yZWxlYXNlKCk7CkBAIC0xNjQsMjUg
KzE1NiwyMSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxpbmcoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlKQogICAgICAgICB9CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7
CiAgICAgICAgIGlmICghbm9kZSB8fCBub2RlID09IHJvb3QoKSkKLSAgICAgICAgICAgIHJldHVy
biAwOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwg
bm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkp
Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAg
ICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkK
LSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogfQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpuZXh0U2libGluZyhKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpuZXh0U2libGluZygpCiB7CiAgICAgUmVmUHRyPE5vZGU+
IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgaWYgKG5vZGUgPT0gcm9vdCgpKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAg
Zm9yIChSZWZQdHI8Tm9kZT4gc2libGluZyA9IG5vZGUtPm5leHRTaWJsaW5nKCk7IHNpYmxpbmc7
ICkgewotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3Rh
dGUsIHNpYmxpbmcuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRF
eGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHNob3J0
IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHNpYmxpbmcuZ2V0KCkpOwogICAgICAgICAg
ICAgc3dpdGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgY2FzZSBOb2Rl
RmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBz
aWJsaW5nLnJlbGVhc2UoKTsKQEAgLTIwMSwzMSArMTg5LDI1IEBAIE5vZGUqIFRyZWVXYWxrZXI6
Om5leHRTaWJsaW5nKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgfQogICAgICAgICBu
b2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAoIW5vZGUgfHwgbm9kZSA9PSBy
b290KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJl
c3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUg
JiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFj
Y2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5v
ZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cHJldmlv
dXNOb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3Vz
Tm9kZSgpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgd2hpbGUg
KG5vZGUgIT0gcm9vdCgpKSB7CiAgICAgICAgIHdoaWxlIChOb2RlKiBwcmV2aW91c1NpYmxpbmcg
PSBub2RlLT5wcmV2aW91c1NpYmxpbmcoKSkgewogICAgICAgICAgICAgbm9kZSA9IHByZXZpb3Vz
U2libGluZzsKLSAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2Rl
KHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFk
RXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBzaG9y
dCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgICAg
IGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB3aGlsZSAoTm9kZSogbGFzdENoaWxk
ID0gbm9kZS0+bGFzdENoaWxkKCkpIHsKICAgICAgICAgICAgICAgICBub2RlID0gbGFzdENoaWxk
OwotICAgICAgICAgICAgICAgIGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBu
b2RlLmdldCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICBh
Y2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgICAgICAg
ICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUKQogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTIzNSwyOSArMjE3LDI1
IEBAIE5vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUp
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUgPT0gcm9vdCgpKQot
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAg
ICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICBp
ZiAoIXBhcmVudCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgICAgIG5vZGUgPSBwYXJlbnQ7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVS
ZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRl
ICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAg
ICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAg
ICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAgICB9Ci0gICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6Om5l
eHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Om5leHROb2Rl
KCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKIENoaWxkcmVuOgogICAg
IHdoaWxlIChOb2RlKiBmaXJzdENoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAg
IG5vZGUgPSBmaXJzdENoaWxkOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNj
ZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+
aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgc2hv
cnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIGlm
IChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAgICAgICAg
ICAgICByZXR1cm4gc2V0Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAgICAgICAgIGlmIChhY2Nl
cHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCkBAIC0yNjUsOSArMjQz
LDcgQEAgQ2hpbGRyZW46CiAgICAgfQogICAgIHdoaWxlIChOb2RlKiBuZXh0U2libGluZyA9IE5v
ZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCByb290KCkpKSB7CiAgICAg
ICAgIG5vZGUgPSBuZXh0U2libGluZzsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9
IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3Rh
dGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAg
ICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQogICAg
ICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAgICAgICBpZiAo
YWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVdhbGtlci5oCmluZGV4IGM0NDBjMjk2Y2M2NzUzNjUwMjllNTQ2MDc3Y2EzMmI3N2YwNjRjNGQu
LjZhM2ZlNzE2OGYwNDg1ZDNlYThmZTc0NmJjMGU3MTY0MGExN2M2MzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVXYWxrZXIuaApAQCAtNDUsMjMgKzQ1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgTm9kZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQuZ2V0KCk7IH0K
ICAgICAgICAgdm9pZCBzZXRDdXJyZW50Tm9kZShQYXNzUmVmUHRyPE5vZGU+LCBFeGNlcHRpb25D
b2RlJik7CiAKLSAgICAgICAgTm9kZSogcGFyZW50Tm9kZShKU0M6OkV4ZWNTdGF0ZSopOwotICAg
ICAgICBOb2RlKiBmaXJzdENoaWxkKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIGxh
c3RDaGlsZChKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmco
SlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogbmV4dFNpYmxpbmcoSlNDOjpFeGVjU3Rh
dGUqKTsKLSAgICAgICAgTm9kZSogcHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAg
ICAgIE5vZGUqIG5leHROb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0KLSAgICAgICAgLy8gRG8gbm90
IGNhbGwgdGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNjYWZmb2xkaW5nIHRvIHN1cHBv
cnQgdGhlIE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAvLyBUaGV5IG9wZXJhdGUgaW4g
dGhlIG1haW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkgc3dhbGxvdyBKUyBleGNlcHRp
b25zLgotICAgICAgICBOb2RlKiBwYXJlbnROb2RlKCkgeyByZXR1cm4gcGFyZW50Tm9kZShleGVj
U3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7
IH0KLSAgICAgICAgTm9kZSogZmlyc3RDaGlsZCgpIHsgcmV0dXJuIGZpcnN0Q2hpbGQoZXhlY1N0
YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9
Ci0gICAgICAgIE5vZGUqIGxhc3RDaGlsZCgpIHsgcmV0dXJuIGxhc3RDaGlsZChleGVjU3RhdGVG
cm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAg
ICAgICAgTm9kZSogcHJldmlvdXNTaWJsaW5nKCkgeyByZXR1cm4gcHJldmlvdXNTaWJsaW5nKGV4
ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkp
KTsgfQotICAgICAgICBOb2RlKiBuZXh0U2libGluZygpIHsgcmV0dXJuIG5leHRTaWJsaW5nKGV4
ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkp
KTsgfQotICAgICAgICBOb2RlKiBwcmV2aW91c05vZGUoKSB7IHJldHVybiBwcmV2aW91c05vZGUo
ZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQo
KSkpOyB9Ci0gICAgICAgIE5vZGUqIG5leHROb2RlKCkgeyByZXR1cm4gbmV4dE5vZGUoZXhlY1N0
YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9
CisgICAgICAgIE5vZGUqIHBhcmVudE5vZGUoKTsKKyAgICAgICAgTm9kZSogZmlyc3RDaGlsZCgp
OworICAgICAgICBOb2RlKiBsYXN0Q2hpbGQoKTsKKyAgICAgICAgTm9kZSogcHJldmlvdXNTaWJs
aW5nKCk7CisgICAgICAgIE5vZGUqIG5leHRTaWJsaW5nKCk7CisgICAgICAgIE5vZGUqIHByZXZp
b3VzTm9kZSgpOworICAgICAgICBOb2RlKiBuZXh0Tm9kZSgpOwogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgVHJlZVdhbGtlcihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1No
b3csIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKaW5kZXggMjYzYWVmYTQ5MDI5NWY0MGMwYmNiOWFk
ZWVlMGZlNzhkNDBlNjJjZi4uNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQwMjBlNDcx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbApAQCAtMjksMTIgKzI5LDEyIEBACiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAg
IAogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2Rl
OwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIHBhcmVudE5vZGUoKTsKLSAgICBb
Q2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgZmlyc3RDaGlsZCgpOwotICAgIFtDYWxsV2l0aD1T
Y3JpcHRTdGF0ZV0gTm9kZSBsYXN0Q2hpbGQoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVd
IE5vZGUgcHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2Rl
IG5leHRTaWJsaW5nKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIHByZXZpb3Vz
Tm9kZSgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBuZXh0Tm9kZSgpOworICAg
IE5vZGUgcGFyZW50Tm9kZSgpOworICAgIE5vZGUgZmlyc3RDaGlsZCgpOworICAgIE5vZGUgbGFz
dENoaWxkKCk7CisgICAgTm9kZSBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICBOb2RlIG5leHRTaWJs
aW5nKCk7CisgICAgTm9kZSBwcmV2aW91c05vZGUoKTsKKyAgICBOb2RlIG5leHROb2RlKCk7CiB9
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNzMxZmYyNTVlYjNhMGJkMWFjNzA4MGYyOTc5NjNjMzhmMmIyODc1MS4uYWYy
NmU5N2VmMDUyMWM4MjJjYzNiZDM0YzYyNGQwM2NjNjM3YmUwZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUy
IEBACisyMDE1LTA4LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTm9kZUZpbHRlciBzaG91bGQgYmUgYSBjYWxsYmFjayBpbnRlcmZhY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODQxNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vVHJlZVdhbGtl
ci9hY2NlcHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUsIHRo
ZSBuZXcgZXhjZXB0aW9uIG1lc3NhZ2UgaXMgZGlmZmVyZW50IGJ1dCB0aGUgZXhjZXB0aW9uCisg
ICAgICAgIHR5cGUgaXMgdGhlIHNhbWUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9jb25zdGFudHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL2NvbnN0YW50cy5odG1sOgorICAgICAg
ICBTdG9wIGNoZWNraW5nIGZvciBjb25zdGFudHMgb24gTm9kZUZpbHRlciBpbnN0YW5jZXMgYXMg
dGhvc2UgYXJlIG5vdworICAgICAgICBGdW5jdGlvbnMgKGltcGxlbWVudGVkIGJ5IHRoZSBKYXZh
U2NyaXB0KS4gVGhvc2UgY29uc3RhbnRzIGFyZSBvbgorICAgICAgICB3aW5kb3cuTm9kZUZpbHRl
ciBzdGlsbC4gSSB2ZXJpZmllZCB0aGF0IHRoaXMgaXMgY29uc2lzdGFudCB3aXRoCisgICAgICAg
IEZpcmVmb3guCisKKyAgICAgICAgKiBmYXN0L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWw6
CisgICAgICAgIFVwZGF0ZSB0aGUgY2hlY2sgdG8gdmVyaWZ5IHRoYXQgdGhlIHByb3RvdHlwZSBv
ZiBhIE5vZGVGaWx0ZXIgaW5zdGFuY2UKKyAgICAgICAgaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlw
ZSwgbm90IHRoZSBOb2RlRmlsdGVyIHByb3RvdHlwZS4gTm9kZUZpbHRlcgorICAgICAgICBzaG91
bGQgbm90IGhhdmUgYSBwcm90b3R5cGUgYXMgaXQgaXMgYSBjYWxsYmFjayBpbnRlcmZhY2UuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sOgorICAgICAgICBQYXNzIG51
bGwgZm9yIHRoZSBmaWx0ZXIgYXJndW1lbnQgaW5zdGVhZCBvZiAwLiBUaGUgZnVuY3Rpb25zIGV4
cGVjdAorICAgICAgICBhIG51bGxhYmxlIE5vZGVGaWx0ZXIgb2JqZWN0LiBQYXNzaW5nIDAgaGVy
ZSB0aHJvd3MuCisKKyAgICAgICAgKiBmYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhw
ZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lLiB3aW5kb3cuTm9kZUZpbHRlciBubyBsb25n
ZXIgaGFzIGEgcHJvdG90eXBlLiBUaGlzIGlzIGJlY2F1c2UKKyAgICAgICAgY2FsbGJhY2sgaW50
ZXJmYWNlcyBhcmUgbm90IHN1cHBvc2VkIHRvIGhhdmUgYSBwcm90b3R5cGUgcHJvcGVydHksIGFz
CisgICAgICAgIHBlciB0aGUgV2ViIElETCBzcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwczov
L2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpbnRlcmZhY2UtcHJvdG90eXBlLW9iamVjdAorCisg
ICAgICAgIEkgYWxzbyB2ZXJpZmllZCB0aGF0IHRoaXMgaXMgY29uc2lzdGVudCB3aXRoIEZpcmVm
b3guCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRy
ZWVXYWxrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL2RvbS90cmF2
ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3cz
Yy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2Vs
aW5lIFczQyB0ZXN0cy4gV2UgYXJlIG5vdyBwYXNzaW5nIGEgbG90IG9mIGNoZWNrcyBiZWNhdXNl
IHRoZXkKKyAgICAgICAgY2hlY2sgdGhhdCBUcmVlV2Fsa2VyLmZpbHRlciAvIE5vZGVJdGVyYXRv
ci5maWx0ZXIgaXMgYSBGdW5jdGlvbi4KKworICAgICAgICAqIHRyYXZlcnNhbC9zaXplLXplcm8t
cnVuLmh0bWw6CisgICAgICAgIEZpeCB0aGUgdGVzdCB0byBwYXNzIGEgbnVsbCBub2RlIGZpbHRl
ciBpbnN0ZWFkIG9mIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVC4KKyAgICAgICAgVGhlIGNhbGwg
d2FzIG5vdCB2YWxpZCBhbmQgbm93IGNvcnJlY3RseSB0aHJvd3MuIFRoZSBKUyBpcyBzdXBwb3Nl
ZCB0byBwYXNzCisgICAgICAgIGluIGEgbnVsbGFibGUgTm9kZUZpbHRlciwgbm90IGEgY29uc3Rh
bnQuIEkgdGhpbmsgdGhlIGNvZGUgbWVhbnQgdG8gc2F5CisgICAgICAgICJmdW5jdGlvbigpIHsg
cmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsgfSIsIGhvd2V2ZXIsIEkgdXNlZCBudWxs
IGFzCisgICAgICAgIGl0IGlzIHNob3J0ZXIgYW5kIGVxdWl2YWxlbnQuCisKIDIwMTUtMDgtMzEg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBhaW50IGNsZWFu
dXA6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5v
ZGUtZmlsdGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIv
YWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CmluZGV4IGNhNWRhODQxYjc4MmIzM2ZmZTkz
YmYwYTQ5Y2NmODdlMjQ1ZmRkM2IuLmVlN2QyMWE2ZmZiNzk3NWYyZjkxMzBkNGIzYTQwYTQyNmM1
YjQ0YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0
Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVX
YWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAg
UEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwog
UEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAog
VGVzdGluZyB3aXRoIG9iamVjdCBsYWNraW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fs
a2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBv
YmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIu
Zmlyc3RDaGlsZCgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFT
UyB3YWxrZXIuY3VycmVudE5vZGUuaWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUo
KTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3Qg
aGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnRO
b2RlLmlkOyBpcyAncm9vdCcKIAogVGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlv
biBhY2NlcHROb2RlIHByb3BlcnR5Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNj
ZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBp
cyAncm9vdCcKLVBBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlv
bi4KK1BBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCiBQQVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rp
bmcgd2l0aCBmdW5jdGlvbiBoYXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2NvbnN0YW50cy1leHBlY3RlZC50eHQKaW5kZXggNDdmYzViMmJjODEzYmNmYTVh
YzJlNzUxOTk1Zjk5MzY2Yjc3MjNiOC4uYmZkNjU3MDU1NGEyNzk5MWQ1N2FkNTE4NjM4NjRlMjA5
M2RlOTU1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0
CkBAIC0yNCwyMiArMjQsNiBAQCBQQVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0lOSEVSSVQgc2hv
dWxkIGJlIDAgYW5kIGlzLgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19QUklNSVRJVkVfVkFM
VUUgc2hvdWxkIGJlIDEgYW5kIGlzLgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9M
SVNUIHNob3VsZCBiZSAyIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9N
IHNob3VsZCBiZSAzIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91
bGQgYmUgMSBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJl
IDIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5GSUxURVJfU0tJUCBzaG91bGQgYmUgMyBhbmQg
aXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQUxMIHNob3VsZCBiZSA0Mjk0OTY3Mjk1IGFuZCBp
cy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBB
U1M6IG5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzog
bm9kZUZpbHRlci5TSE9XX1RFWFQgc2hvdWxkIGJlIDQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRl
ci5TSE9XX0NEQVRBX1NFQ1RJT04gc2hvdWxkIGJlIDggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRl
ci5TSE9XX0VOVElUWV9SRUZFUkVOQ0Ugc2hvdWxkIGJlIDE2IGFuZCBpcy4KLVBBU1M6IG5vZGVG
aWx0ZXIuU0hPV19FTlRJVFkgc2hvdWxkIGJlIDMyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIu
U0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIHNob3VsZCBiZSA2NCBhbmQgaXMuCi1QQVNTOiBu
b2RlRmlsdGVyLlNIT1dfQ09NTUVOVCBzaG91bGQgYmUgMTI4IGFuZCBpcy4KLVBBU1M6IG5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCBzaG91bGQgYmUgMjU2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVF9UWVBFIHNob3VsZCBiZSA1MTIgYW5kIGlzLgotUEFTUzogbm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIHNob3VsZCBiZSAxMDI0IGFuZCBpcy4KLVBBU1M6
IG5vZGVGaWx0ZXIuU0hPV19OT1RBVElPTiBzaG91bGQgYmUgMjA0OCBhbmQgaXMuCiBQQVNTOiB3
aW5kb3cuTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6
IHdpbmRvdy5Ob2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgogUEFT
Uzogd2luZG93Lk5vZGVGaWx0ZXIuRklMVEVSX1NLSVAgc2hvdWxkIGJlIDMgYW5kIGlzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9jb25zdGFudHMuaHRtbAppbmRleCBkY2UyNTg4OTQzYWMwNThkYzJiMTljYTMw
ZWQ3MzAwYTc2OGYwZTAxLi4xOTViYmNkOWU2NTc2ZTM0ODUxZjc3YjVlNTExOWNhODE4MGZmNzg3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMuaHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5j
dGlvbiBzaG91bGRCZShhLCBiKQogICAgIHByaW50KG1lc3NhZ2UsIGNvbG9yKTsKIH0KIAotdmFy
IGNzc1J1bGUsIGNzc1ZhbHVlLCBub2RlRmlsdGVyLCBldmVudDsKK3ZhciBjc3NSdWxlLCBjc3NW
YWx1ZSwgZXZlbnQ7CiAKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQpAQCAtNjYsMzQgKzY2LDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzaG91bGRCZSgi
d2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNUIiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRv
dy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIiwgMyk7CiAKLSAgICB2YXIgbm9kZUl0ZXJhdG9yOwotICAg
IHRyeSB7Ci0gICAgICAgIG5vZGVJdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N1bWVudCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7IHJldHVybiBOb2RlRmls
dGVyLkZJTFRFUl9BQ0NFUFQ7IH0sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmFsc2UpOwotICAgIH0gY2F0Y2goZSkgewotICAgICAgICBub2Rl
SXRlcmF0b3IgPSBuZXcgT2JqZWN0KCk7Ci0gICAgfQotICAgIAotICAgIG5vZGVGaWx0ZXIgPSBu
b2RlSXRlcmF0b3IuZmlsdGVyOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9BQ0NF
UFQiLCAxKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5GSUxURVJfUkVKRUNUIiwgMik7Ci0g
ICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuRklMVEVSX1NLSVAiLCAzKTsKLSAgICBzaG91bGRCZSgi
bm9kZUZpbHRlci5TSE9XX0FMTCIsIDB4RkZGRkZGRkYpOwotICAgIHNob3VsZEJlKCJub2RlRmls
dGVyLlNIT1dfRUxFTUVOVCIsIDB4MDAwMDAwMDEpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFIiwgMHgwMDAwMDAwMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIu
U0hPV19URVhUIiwgMHgwMDAwMDAwNCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19D
REFUQV9TRUNUSU9OIiwgMHgwMDAwMDAwOCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hP
V19FTlRJVFlfUkVGRVJFTkNFIiwgMHgwMDAwMDAxMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0
ZXIuU0hPV19FTlRJVFkiLCAweDAwMDAwMDIwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5T
SE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04iLCAweDAwMDAwMDQwKTsKLSAgICBzaG91bGRCZSgi
bm9kZUZpbHRlci5TSE9XX0NPTU1FTlQiLCAweDAwMDAwMDgwKTsKLSAgICBzaG91bGRCZSgibm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5UIiwgMHgwMDAwMDEwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBFIiwgMHgwMDAwMDIwMCk7Ci0gICAgc2hvdWxkQmUoIm5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9GUkFHTUVOVCIsIDB4MDAwMDA0MDApOwotICAgIHNob3Vs
ZEJlKCJub2RlRmlsdGVyLlNIT1dfTk9UQVRJT04iLCAweDAwMDAwODAwKTsKLQogICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUIiwgMSk7CiAgICAgc2hvdWxkQmUo
IndpbmRvdy5Ob2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1QiLCAyKTsKICAgICBzaG91bGRCZSgid2lu
ZG93Lk5vZGVGaWx0ZXIuRklMVEVSX1NLSVAiLCAzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbAppbmRleCA5N2QyZmFkYmRlOWUxOGEwZTkwOWQ4Mzcy
OWZjN2U1OTc4Y2VkNmNlLi4wYjM5ZGQwNzAzMzZlMWMzODk2ZDg3MGY5OTdkZTlmODk0N2FkMDVj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy5odG1sCkBA
IC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRyeSB7CiAgICAgICBub2RlRmls
dGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgZnVuY3Rpb24gKCkge30sIGZhbHNlKS5maWx0ZXI7CiAgICAgfSBjYXRjaChl
KSB7fQotICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5wcm90b3R5cGUuaXNQcm90b3R5
cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOworICAgIHNob3VsZEJlKCJGdW5jdGlvbi5wcm90b3R5
cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRydWUpOwogCiAgICAgb3JpZ2luYWxOb2Rl
UHJvdG90eXBlID0gd2luZG93Lk5vZGUucHJvdG90eXBlOwogICAgIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL25vZGUtZmlsdGVyLWdjLmh0bWwKaW5kZXggMDY0OWFkMjE4YmU5ZGZhYTE5NzNjZGM3NTYw
NzE1ZjRiZWZmYWY4Zi4uYTIwNGM0NGJmM2YzY2Q1ODA5YzRiMDJlYWUwYzQ0NTljMjcwNTYwMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sCkBAIC0zLDggKzMsOCBA
QAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
ICAgIAotdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgMCwgZmFsc2UpOwotdmFyIHdhbGtlciA9IGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAw
LCBmYWxzZSk7Cit2YXIgaXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
dW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsLCBmYWxzZSk7Cit2YXIgd2Fsa2Vy
ID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwsIGZhbHNlKTsKIAogLy8gY3JlYXRlIGxvdHMgb2Ygb2JqZWN0cyB0byBmb3Jj
ZSBhIGdhcmJhZ2UgY29sbGVjdGlvbgogIHZhciBpID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CmluZGV4IDVl
NTQ2ODZmYWEzYzdhZjM2YWRiNWIxMTZmODI1ZGIxY2M2ZjcyYzcuLmQ0YTk4YzhlNDI1MjUwOWQy
ZTNiNmUwYWFkYWE3ZmI2ZWY1NmRiY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMzksOCArMzksNiBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJs
ZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDBdCiAqIG5hbWUKIFtDb25maWd1cmFi
bGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiBOb2Rl
RmlsdGVyXQotKiBwcm90b3R5cGUKLVtDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBm
YWxzZSwgd3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogW29iamVjdCBOb2RlRmlsdGVyUHJvdG90eXBl
XV0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0CmluZGV4IDgyMjI0OTI4MGI5MWU0Yjg5ODFjODY0ZWYyMGNhODY0N2M5MjdiZTYuLjdk
NDA4NzJjYzZmMTgzMjdiYWJjMTg0YjU4OGY0NTc3ZjhhMDczY2MgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAg
LTE4OTAsNDEgKzE4OTAsNDEgQEAgUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlMKIFBBU1MgVHJlZVdh
bGtlciBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwg
Tm9kZUZpbHRlci5TSE9XX0FMTCwgbnVsbCwgZmFsc2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cHJldmlvdXNOb2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoOSkgCiBQQVNTIFRyZWVXYWxrZXIg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVG
aWx0ZXIuU0hPV19BTEwsIG51bGwsIGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHRO
b2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTApIAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2
ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9mYWxzZTog
Tm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3Rl
ZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBOb2RlRmls
dGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZB
SUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3Qg
aGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
RklMVEVSX1JFSkVDVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgRklMVEVSX1JFSkVDVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIg
cHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IEZJTFRFUl9SRUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
CiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRl
cmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVS
X1NLSVAgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJ
UCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FMTCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlw
ZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfQUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAog
UEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVy
ZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VM
RU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1F
TlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBO
b2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2
ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNI
T1dfVEVYVCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTog
Y29uc3RhbnQgU0hPV19URVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9m
YWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBl
eHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3Rh
bnQgU0hPV19URVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmls
dGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBv
YmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NF
Q1RJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRB
X1NFQ1RJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIG9i
amVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JF
RkVSRU5DRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVG
aWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFs
c2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5U
SVRZX1JFRkVSRU5DRSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZp
bHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBvYmplY3Qg
Ci1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5v
dCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
U0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04g
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNo
b3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0
cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdf
SU5TVFJVQ1RJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAK
LUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5v
dCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50
IFNIT1dfRE9DVU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUi
IHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBF
IG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFu
dCBTSE9XX0RPQ1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0
X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5
IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0RPQ1VNRU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQ
QVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5U
IG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFu
dCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFz
c2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9w
ZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTog
Y29uc3RhbnQgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04g
b24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50
IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNl
OiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVj
dGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24g
YWNjZXB0Tm9kZShOb2RlKSBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZl
IGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNj
ZXB0Tm9kZShOb2RlKSAKIEZBSUwgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogY2xhc3Mgc3Ry
aW5nIG9mIERPTVRva2VuTGlzdCBleHBlY3RlZCAiW29iamVjdCBGdW5jdGlvbl0iIGJ1dCBnb3Qg
IltvYmplY3QgRE9NVG9rZW5MaXN0Q29uc3RydWN0b3JdIgogUEFTUyBET01Ub2tlbkxpc3QgaW50
ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVh
dGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2Rv
bS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA3MmVh
ZDUzMjllZjkzZDE4ZmIzMjI2MjAxODFlYmI3Mjg3Y2FlYzJlLi4zOGVmMDA4YzA0YmEwZmIwZTBj
MmJmMTU0Mzk2MTQ2YzFhMDkxMWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRy
ZWVXYWxrZXItZXhwZWN0ZWQudHh0CkBAIC0zLDUgKzMsNSBAQCBQQVNTIFJlcXVpcmVkIGFyZ3Vt
ZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSByZXF1aXJlZC4KIFBBU1MgT3B0aW9u
YWwgYXJndW1lbnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgxIHBh
c3NlZCkuIAogUEFTUyBPcHRpb25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91
bGQgYmUgb3B0aW9uYWwgKDIgcGFzc2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBj
cmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIG51bGwpLiAKLUZB
SUwgT3B0aW9uYWwgYXJndW1lbnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlv
bmFsICgzIHBhc3NlZCwgZnVuY3Rpb24pLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVl
V2Fsa2VyIHNob3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJz
YWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dAppbmRleCA0ZDU5ODZjNGY0ZjE0NWJlYmQ0ZjQ1
YmIwM2VkMzAzNjEzZDZjMGVjLi44YTU2ZDdhNDI1MmQyZGYxZWVhOWM3Mzk2ODI0MmQ5ZmEzMWVl
NjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2Fs
L05vZGVJdGVyYXRvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0CkBAIC01LDc0MyArNSw3
NDMgQEAgUEFTUyBjcmVhdGVOb2RlSXRlcmF0b3IoKSB3aXRoIG51bGwgYXMgYXJndW1lbnRzCiBG
QUlMIGNyZWF0ZU5vZGVJdGVyYXRvcigpIHdpdGggdW5kZWZpbmVkIGFzIGFyZ3VtZW50cyBhc3Nl
cnRfZXF1YWxzOiB3aGF0VG9TaG93IGV4cGVjdGVkIDQyOTQ5NjcyOTUgYnV0IGdvdCAwCiBQQVNT
IFByb3BhZ2F0ZSBleGNlcHRpb24gZnJvbSBmaWx0ZXIgZnVuY3Rpb24gCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxk
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhG
RkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhG
RkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRE
aXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRE
aXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvYywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
YywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
YywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25U
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVu
dCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhG
RkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFn
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5
cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBh
cmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IodGVzdERpdiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0
ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxFbGVtZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxl
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxD
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJh
ZywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2Zy
YWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJh
ZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2Zy
YWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFn
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
dHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1leHBlY3Rl
ZC50eHQKaW5kZXggOWFiZWQzMGU3NGI1YTYwNDE1NzU5ODJlYTAyMGFhOGRjNTg0NTYyNi4uNjU1
Nzg0ZGI1YmIyOGI4MTEwNzIzZjljNTQzZGE2ZjliZWVjOTA3OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDc0MiArMSw3NDMgQEAKIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBd
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sx
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEx
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEx
LmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAw
eEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNp
YmxpbmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgIlRyZWVXYWxrZXIgdGVzdHMiIGJ1dCBnb3QgbnVs
bAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWREaXYsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAw
eEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgIld4eXphYmNkIiBi
dXQgZ290IG51bGwKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
YywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2MsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
YywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5uZXh0U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9kZSAiRWZnaGlqa2wi
IGJ1dCBnb3QgQ29tbWVudCBub2RlIDwhLS0iQ29tbWVudGVyIiBhbmQgImNvbW1lbnRhdG9yIiBt
ZWFuIGRpZmZlcmVudCB0aGluZ3MuICBJJ3YuLi4tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
YywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvYywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
YywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNp
YmxpbmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgImRvIHJlIG1pIGZhIHNvIGxhIHRpIiBidXQgZ290
IENvbW1lbnQgbm9kZSA8IS0tSSBtYWxpY2lvdXNseSBjcmVhdGVkIGEgY29tbWVudCB0aGF0IHdp
bGwgYnJlYWsgaW5jYXV0aW91Li4uLS0+CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHRO
b2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Y29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRD
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJh
ZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5
cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlw
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1sxXSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0
ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVz
dERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBUZXh0
IG5vZGUgIklqa2xtbm9wCisiIGJ1dCBnb3QgQ29tbWVudCBub2RlIDwhLS1BbHBoYWJldCBzb3Vw
Py0tPgogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0
RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3RE
aXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxF
bGVtZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxl
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxF
bGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNv
bW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25D
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25D
b21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9y
ZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1s
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2Zy
YWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Nm
cmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Nm
cmFnLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Nm
cmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3NpemUtemVyby1ydW4uaHRtbCBiL0xheW91
dFRlc3RzL3RyYXZlcnNhbC9zaXplLXplcm8tcnVuLmh0bWwKaW5kZXggYzY3YjIyYjQ5MTUyYTRh
OTZjYzQzYTRmYzQ5MDJjMjM1ZWI3M2VkNy4uMzViNTRjNmQ0MTQ2YzJhMWFmYjA5NjljZDVhZDA5
MTk0Yzc2Nzg2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3NpemUtemVyby1y
dW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1sCkBA
IC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgdGV4dG5vZGUyLm5vZGVWYWx1
ZSA9ICIiOwogICAgIAogICAgIHZhciByb290ID0gZG9jdW1lbnQuYm9keTsKLSAgICB2YXIgaXQg
PSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Iocm9vdCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCwgZmFsc2UpOworICAgIHZhciBpdCA9IGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihyb290LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCwgZmFsc2UpOwogCiAgICAgdmFyIG4gPSBpdC5uZXh0Tm9kZSgpOwogICAgIHdoaWxlKG4pIHsK
QEAgLTI4LDQgKzI4LDQgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIDxwPkEgY3Jhc2ggd291bGQgb2Nj
dXIgb24gaXRlcmF0aW9uIG92ZXIgYSBub2RlIGNvbnRhaW5pbmcgc3VjaCBhIHJ1bi4gIE5vZGVJ
dGVyYXRvcnMsIHRoZSBpbm5lclRleHQgcHJvcGVydHksIGFuZCBob3ZlcmluZyBvdmVyIGEgbGlu
ayBhbGwgdXNlIGl0ZXJhdGlvbi48L3A+CiA8cD5UaGlzIHRlc3RzIGl0ZXJhdGlvbiB1c2luZyBi
b3RoIHRoZSBpbm5lclRleHQgcHJvcGVydHkgYW5kIE5vZGVJdGVyYXRvcnMuICBJdCBpcyBzdWNj
ZXNzZnVsIGlmIGl0IGRvZXNuJ3QgY3Jhc2ggU2FmYXJpLjwvcD4KIDxocj4KLTxhIGhyZWY9IiMi
IGlkPSJub2RlIj5oZWxsbzwvYT48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKKzxhIGhyZWY9IiMiIGlkPSJub2RlIj5oZWxsbzwvYT48L2JvZHk+PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260348</attachid>
            <date>2015-08-31 21:21:29 -0700</date>
            <delta_ts>2015-09-01 13:43:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148415-20150831212112.patch</filename>
            <type>text/plain</type>
            <size>553331</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBhZmY5NWVkYmJkYmMw
Nzg3MWYzNjBlYTQ1YTg5NzUyYzMzZWZjZi4uNTlhM2YzODY2MDE5ODEwMDcwMTFhNWIzOTI3YTAx
ZDdkYTk4MzRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NSBAQAorMjAxNS0wOC0zMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGVGaWx0ZXIgc2hvdWxk
IGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOb2RlRmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSwg
aW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLAorICAgICAgICBhcyBwZXIgdGhlIERPTSBz
cGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVy
ZmFjZS1ub2RlZmlsdGVyCisKKyAgICAgICAgT25lIG1ham9yIGRpZmZlcmVuY2UgaXMgdGhhdCBU
cmVlV2Fsa2VyLmZpbHRlciAvIE5vZGVJdGVyYXRvciBpcworICAgICAgICBzdXBwb3NlZCB0byBi
ZSBhIEZ1bmN0aW9uIC8gT2JqZWN0IChwYXNzZWQgYnkgSmF2YVNjcmlwdCksIGJ1dCBpdCB3YXMg
YQorICAgICAgICBKU05vZGVGaWx0ZXIgd3JhcHBlciBpbiBXZWJLaXQuIEFsc28sIHdpbmRvdy5O
b2RlRmlsdGVyIGlzIG5vdCBzdXBwb3NlZAorICAgICAgICB0byBoYXZlIGEgcHJvdG90eXBlIHBy
b3BlcnR5LgorCisgICAgICAgIFRoaXMgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIEZpcmVm
b3guIEhvd2V2ZXIsIENocm9tZSBzdGlsbCBoYXMgaXRzCisgICAgICAgIG93biBOb2RlRmlsdGVy
IHdyYXBwZXIuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgIGh0dHAvdGVzdHMvdzNjL2RvbS90
cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLmh0bWwgKHJlYmFzZWxpbmVkKQorICAgICAg
ICBodHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbCAocmViYXNlbGlu
ZWQpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgIEFkZCAvIFJlbW92ZSBmaWxlcyB0byB0aGUgcHJvamVjdCBmaWxlcy4KKwor
ICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlRmls
dGVyQ29uZGl0aW9uLmg6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbjo6YWNjZXB0Tm9kZSk6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ05vZGVG
aWx0ZXJDb25kaXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVy
Q29uZGl0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246
OmFjY2VwdE5vZGUpOgorICAgICAgICBEcm9wIEV4ZWNTdGF0ZSBwYXJhbWV0ZXIgYXMgaXQgaXMg
bm90IHVzZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgVXNlIE5hdGl2ZU5vZGVG
aWx0ZXIgdHlwZSBpbnN0ZWFkIG9mIE5vZGVGaWx0ZXIuIE5vZGVGaWx0ZXIgaXMgbm93CisgICAg
ICAgIGEgcHVyZSBpbnRlcmZhY2Ugd2l0aCAyIHN1YmNsYXNzZXM6IE5hdGl2ZU5vZGVGaWx0ZXIg
Zm9yIHRoZSBuYXRpdmUKKyAgICAgICAgYmluZGluZ3MgYW5kIEpTTm9kZUZpbHRlciBmb3IgdGhl
IEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcDoKKyAgICAgICAgRHJvcCBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGFzIGl0IHdhcyBy
ZW1vdmVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAg
VGhyb3cgYSBUeXBlRXJyb3IgaWYgdGhlIGNhbGxiYWNrIG9iamVjdCBiZWluZyBpbnZva2VkIGlz
IG5vdCBjYWxsYWJsZQorICAgICAgICBhbmQgZG9lcyBub3QgaGF2ZSBhIGNhbGxhYmxlIHByb3Bl
cnR5IHdpdGggdGhlIGV4cGVjdGVkIG5hbWUuIFRoZXJlCisgICAgICAgIGFyZSBzZXZlcmFsIGxh
eW91dCB0ZXN0cyBjb3ZlcmluZyB0aGlzIChpbmNsdWRpbmcgdzNjIG9uZXMpLiBQcmV2aW91c2x5
LAorICAgICAgICBOb2RlRmlsdGVyIHdhcyBub3QgdXNpbmcgdGhlIGdlbmVyaWMgSlNDYWxsYmFj
a0RhdGEgYW5kIHRoZSBleGNlcHRpb24KKyAgICAgICAgdGhyb3dpbmcgd2FzIGluIEpTTm9kZUZp
bHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZSgpIGluc3RlYWQuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICBEcm9wIHRo
aXMgY2xhc3MuIEpTTm9kZUZpbHRlciAvIEpTTm9kZUZpbHRlckN1c3RvbSBub3cgYmFzaWNhbGx5
IHRha2UKKyAgICAgICAgY2FyZSBvZiBhbGwgdGhpcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXI6
OmFjY2VwdE5vZGUpOgorICAgICAgICBDb21wbGV0ZSByZXdyaXRlLiBUaGlzIGZpbGUgaXMgbm93
IG9ubHkgdXNlZCB0byBwcm92aWRlIGEgY3VzdG9tCisgICAgICAgIGltcGxlbWVudGF0aW9uIGZv
ciBKU05vZGVGaWx0ZXI6OmFjY2VwdE5vZGUoKS4gVGhlIGNvZGUgaXMgc2ltaWxhciB0bworICAg
ICAgICB3aGF0IHdhcyBwcmV2aW91c2x5IGRvbmUgaW4gSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjph
Y2NlcHROb2RlKCkuCisgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIHJlYXNvbnMgd2UgbmVlZCBj
dXN0b20gYmluZGluZ3MgaGVyZToKKyAgICAgICAgLSBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGRv
ZXMgbm90IGhhbmRsZSB5ZXQgY2FsbGJhY2sgZnVuY3Rpb25zCisgICAgICAgICAgcmV0dXJuaW5n
IGFueXRoaW5nIGVsc2UgdGhhbiBhIGJvb2xlYW4uCisgICAgICAgIC0gVGhlIHNwZWNpZmljYXRp
b24gY2xlYXJseSBzdGF0ZXMgdGhhdCB3ZSBuZWVkIHRvIHJldGhyb3cgZXhjZXB0aW9ucworICAg
ICAgICAgIHRocm93biBieSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uIEhvd2V2ZXIsIHRoZSBkZWZh
dWx0IGJlaGF2aW9yIG9mCisgICAgICAgICAgb3VyIGJpbmRpbmdzIGlzIHRvIHNpbXBseSByZXBv
cnQgdGhlIGV4Y2VwdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG06CisgICAgICAgIE9ubHkgc2tpcCBmdW5jdGlvbnMgdGhhdCBoYXZlIHBh
cmFtZXRlcnMgdGhhdCBhcmUgY2FsbGJhY2sgKmZ1bmN0aW9ucyosCisgICAgICAgIG5vdCBjYWxs
YmFjayAqaW50ZXJmYWNlcyouIENhbGxiYWNrIGludGVyZmFjZXMgYXJlIHZlcnkgc2ltaWxhciB0
bworICAgICAgICBpbnRlcmZhY2VzIGFuZCB0aGUgZ2VuZXJhdG9yIGlzIGFibGUgdG8gaGFuZGxl
IHRoZW0uIFRoaXMgY2hhbmdlIHdhcworICAgICAgICBuZWVkZWQgZm9yIHRoZSBHVEsgYmluZGlu
Z3MgZ2VuZXJhdG9yIHdvdWxkIG5vIGxvbmdlciBnZW5lcmF0ZSBiaW5kaW5ncworICAgICAgICBm
b3IgRG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKCkgLyBEb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKCksIG5vdworICAgICAgICB0aGF0IE5vZGVGaWx0ZXIgaXMgYSBjYWxsYmFjayBpbnRlcmZh
Y2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyKToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IEdlbmVyYXRlIGEgdG9KUygpIGZ1bmN0aW9uIGZvciBjYWxsYmFjayBpbnRlcmZhY2VzIGFzIHdl
bGwuIFByZXZpb3VzbHksCisgICAgICAgIHdlIHdvdWxkIG9ubHkgZ2VuZXJhdGUgdGhvc2UgZm9y
IHJlZ3VsYXIgaW50ZXJmYWNlcy4gVGhpcyBpcyBuZWVkZWQKKyAgICAgICAgYmVjYXVzZSBOb2Rl
RmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSBhbmQgaXQgaXMgZXhwb3NlZCB0bwor
ICAgICAgICBKUyB2aWEgTm9kZUl0ZXJhdG9yLmZpbHRlciAvIFRyZWVXYWxrZXIuZmlsdGVyLiBU
aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbWVyZWx5IHJldHVybnMgdGhlIGNhbGxiYWNrIG9i
amVjdCAvIGZ1bmN0aW9uIGluc2lkZSB0aGUgSlNDYWxiYWNrRGF0YQorICAgICAgICBzbyB0aGUg
SlMgZ2V0cyBiYWNrIHRoZSBvYmplY3QgLyBmdW5jdGlvbiBpdCBwYXNzZWQgaW4uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICBUd2Vh
ayB0aGUgT2JqQyBiaW5kaW5ncyBnZW5lcmF0b3IgdG8gdXNlIE5hdGl2ZU5vZGVGaWx0ZXIgY2xh
c3MgaW5zdGVhZAorICAgICAgICBvZiBOb2RlRmlsdGVyIGFzIE5vZGVGaWx0ZXIgaXMgbm93IGEg
cHVyZSBpbnRlcmZhY2VzLiBOYXRpdmUgYmluZGluZ3MKKyAgICAgICAgYXJlIG5vdyBleHBlY3Rl
ZCB0byB1c2UgdGhlIE5hdGl2ZU5vZGVGaWx0ZXIgc3ViY2xhc3MgaW5zdGVhZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmg6
CisgICAgICAgIFJlYmFzZWxpbmUgYmluZGluZ3MgdGVzdHMgbm93IHRoYXQgd2UgZ2VuZXJhdGUg
dG9KUygpIGZ1bmN0aW9ucyBmb3IKKyAgICAgICAgY2FsbGJhY2sgZnVuY3Rpb25zIC8gaW50ZXJm
YWNlcy4KKworICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgIERyb3AgTm9k
ZUZpbHRlci5jcHAgYXMgaXQgd2FzIHJlbW92ZWQuCisKKyAgICAgICAgKiBkb20vTmF0aXZlTm9k
ZUZpbHRlci5jcHA6IEFkZGVkLgorICAgICAgICAqIGRvbS9OYXRpdmVOb2RlRmlsdGVyLmg6IEFk
ZGVkLgorICAgICAgICBJbnRyb2R1Y2UgbmV3IE5hdGl2ZU5vZGVGaWx0ZXIgY2xhc3Mgd2hpY2gg
c3ViY2xhc3NlcyB0aGUgTm9kZUZpbHRlcgorICAgICAgICBpbnRlcmZhY2UgYW5kIGlzIHVzZWQg
YnkgbmF0aXZlIGJpbmRpbmdzLiBJdHMgYWNjZXB0KCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
dXNlcyBOb2RlRmlsdGVyQ29uZGl0aW9uIG9iamVjdCBpbnRlcm5hbGx5IHRvIGZpbHRlciB0aGUg
bm9kZXMgaW5zdGVhZAorICAgICAgICBvZiBhIEpTIGNhbGxiYWNrLgorCisgICAgICAgICogZG9t
L05vZGVGaWx0ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyLmg6Cisg
ICAgICAgIE1ha2UgTm9kZUZpbHRlciBhIHB1cmUgaW50ZXJmYWNlLiBJdHMgcHJldmlvdXMgY29k
ZSBpcyBub3cgZWl0aGVyIGluCisgICAgICAgIE5hdGl2ZU5vZGVGaWx0ZXIgb2YgSlNOb2RlRmls
dGVyLgorCisgICAgICAgICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICBNYWtlIE5vZGVG
aWx0ZXIgYSBjYWxsYmFjayBpbnRlcmZhY2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNl
LAorICAgICAgICBhcyBwZXIgdGhlIERPTSBzcGVjaWZpY2F0aW9uLiBBbHNvIGhhdmUgaXRzIGFj
Y2VwdCgpIG9wZXJhdGlvbiByZXR1cm4KKyAgICAgICAgYW4gdW5zaWduZWQgc2hvcnQgaW5zdGVh
ZCBvZiBhIHNob3J0IHRvIG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uLgorICAgICAgICBUaGUgT2Jq
QyB2ZXJzaW9uIHN0aWxsIHJldHVybnMgYSBzaG9ydCB0aG91Z2ggZm9yIGJhY2t3YXJkCisgICAg
ICAgIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oOgorCisgICAgICAgICogZG9tL05v
ZGVJdGVyYXRvci5jcHA6CisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5oOgorICAgICAgICAq
IGRvbS9Ob2RlSXRlcmF0b3IuaWRsOgorICAgICAgICAqIGRvbS9UcmF2ZXJzYWwuY3BwOgorICAg
ICAgICAqIGRvbS9UcmF2ZXJzYWwuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5jcHA6Cisg
ICAgICAgICogZG9tL1RyZWVXYWxrZXIuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6
CisgICAgICAgIFN0b3AgcGFzc2luZyBFeGVjU3RhdGUgdG8gVHJlZVdhbGtlciAvIE5vZGVJdGVy
YXRvciBmdW5jdGlvbnMuIEl0IG5vCisgICAgICAgIGxvbmdlciBzZWVtcyB0byBiZSBuZWVkZWQg
YXMgd2Ugbm93IHVzZSB0aGUgSlNDYWxsYmFja0RhdGEgYWJzdHJhY3Rpb24KKyAgICAgICAgZm9y
IGludm9raW5nIEpTLgorCiAyMDE1LTA4LTMxICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW5dIFdlYktpdCBjYW5ub3QgbG9hZCBwYWdlcyBiYXNlZCBv
biAiZmlsZTovLyIgVVJMcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0NjA3MGUwMzFmNDZkNzVk
MDE1NTUzNDJkMWZmNWJlN2RiZDhkMTI5Li5lMzRjNjJlYmIxYTZlOGFjMzdjZDEwYzgwYjdiNTA2
ZTg5ZWU3MDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTE2MSw3ICsxMTYxLDYgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTm9kZU9yU3Ry
aW5nLmNwcApAQCAtMTQzNiw4ICsxNDM1LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRv
bS9OYW1lTm9kZUxpc3QuY3BwCiAgICAgZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCiAgICAg
ZG9tL05hbWVkTm9kZU1hcC5jcHAKKyAgICBkb20vTmF0aXZlTm9kZUZpbHRlci5jcHAKICAgICBk
b20vTm9kZS5jcHAKLSAgICBkb20vTm9kZUZpbHRlci5jcHAKICAgICBkb20vTm9kZUZpbHRlckNv
bmRpdGlvbi5jcHAKICAgICBkb20vTm9kZUl0ZXJhdG9yLmNwcAogICAgIGRvbS9Ob2RlT3JTdHJp
bmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agppbmRleCAwNTA5NjRmYTc1YmE4ZjdkOWVkNWMyN2E1OWI5YjBlNDRlMDhjYmQwLi5iNzYyZDZl
YjgxNTI4MWMzOTFhNmNmMGU0YzY5MzkyMGVjNmNkMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0NTU3LDIwICsxNDU1Nyw2IEBA
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE5vZGVGaWx0
ZXIuY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxOb2Rl
RmlsdGVyQ29uZGl0aW9uLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CkBAIC0xODQ3OSwyMCArMTg0NjUsNiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5j
cHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgot
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNc
SlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0yMjQ5Nyw3ICsyMjQ2OSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2suaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlT3JTdHJpbmcuaCIgLz4KLSAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xKU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcU2NoZWR1bGVkQWN0aW9uLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOGM0
ODE3MzJmOGQ0YjAzODMxZGUyZTgyYWUxNzk4ODliY2Q4NjcwMy4uZTFmOWViMDE1MDAwMzhhZTli
Y2RkYWRjYmI2YTM5MDY5MWY1OGExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNDQwNCw5ICs0NDA0LDYg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5j
cHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcCI+Ci0gICAgICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+Ci0gICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVG
aWx0ZXJDdXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTExNDk4LDkgKzExNDk1LDYgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5oIj4KICAgICAgIDxGaWx0ZXI+Ymlu
ZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIj4KLSAgICAgIDxGaWx0
ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIj4KICAg
ICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAz
YmI0ZTczNGYwYWMyYTIzNzY1MTVkNWE4YmI5ODY2M2ZmN2E2YzMzLi44ZTI0NDAwNTM2YjMzMWU3
OTZhOWNjMmQ0NGE5OWUyNTA0OTJiNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjg0LDYgKzI2ODQsNyBAQAogCQk4MzAw
MzBGNTFCN0QzM0I1MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDAzMEYzMUI3
RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwICovOyB9Owog
CQk4MzAwMzBGNjFCN0QzM0I1MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAwMzBG
NDFCN0QzM0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi87IH07
CiAJCTgzMDAzMEY4MUI3RDNCNzgwMEVEM0FBQyAvKiBDYWNoZWRIVE1MQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwMDMwRjcxQjdE
Mzk4ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi87IH07CisJCTgzMDZFRkYx
MUI4QkNFQTUwMDMxRDAzMiAvKiBOYXRpdmVOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDZFRkYwMUI4QkNFN0MwMDMxRDAzMiAv
KiBOYXRpdmVOb2RlRmlsdGVyLmNwcCAqLzsgfTsKIAkJODMyQjg0MzQxOUQ4RTU1MTAwQjI2MDU1
IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODMyQjg0MzMxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVF
bGVtZW50QmFzZS5oICovOyB9OwogCQk4MzJCODQzNjE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzMkI4NDM1MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJh
c2UuY3BwICovOyB9OwogCQk4MzQ4QkZBQjFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NDhCRkE5MUI4NTcyOTUwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uY3BwICovOyB9OwpAQCAt
MjY5Nyw2ICsyNjk4LDcgQEAKIAkJODM4NkE5NzAxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVp
bGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
Mzg2QTk2RTE5RjYxRTRGMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmNwcCAqLzsgfTsKIAkJODM5
QUFGRUMxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVBMUEwQzBDOEQwMDYwNUY5
OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgKi87IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5
OSAvKiBIVE1MV0JSRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM5QUFGRUIxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50Lmgg
Ki87IH07CisJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5NTlFMTFC
OEJDMjJCMDA0RDkzODUgLyogTmF0aXZlTm9kZUZpbHRlci5oICovOyB9OwogCQk4M0I5Njg3QjE5
RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVCdWlsZGVyQ29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0I5Njg3OTE5RjhBQjgzMDA0RUY3QUYg
LyogU3R5bGVCdWlsZGVyQ29udmVydGVyLmggKi87IH07CiAJCTgzQzA1QTVBMUE2ODYyMTIwMDdF
NURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzA1QTU4MUE2ODYyMTIwMDdFNURF
QSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCAqLzsgfTsKIAkJODNDMDVB
NUIxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzA1QTU5MUE2
ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggKi87IH07
CkBAIC0yNzE4LDYgKzI3MjAsNyBAQAogCQk4M0MxRDQzNDE3OEQ1QUI1MDAxNDFFNjggLyogU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyMjE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsLmggKi87IH07CiAJCTgzQzFENDM1MTc4RDVBQjUwMDE0MUU2OCAvKiBT
VkdQYXRoU2VnTW92ZXRvQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4M0MxRDQyMzE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Fi
cy5oICovOyB9OwogCQk4M0MxRDQzNjE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0
b1JlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODND
MUQ0MjQxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCAqLzsgfTsKKwkJ
ODNGMTIwNkIxQjhDMTA0NzAwRDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0YxMjA2QTFCOEMxMDM2
MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJODQxOUQyQTcxMjBE
OTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZH
UGF0aEJ5dGVTdHJlYW0uaCAqLzsgfTsKIAkJODQxOUQyQTgxMjBEOTJEMDAwMTQxRjhGIC8qIFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmNwcCAqLzsgfTsKIAkJODQxOUQyQTkxMjBEOTJEMDAwMTQxRjhGIC8qIFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5oICovOyB9OwpAQCAtMjkwOSw3ICsyOTEyLDYgQEAKIAkJODU0MkE3OTgwQUU1
Qzk0MzAwREY1OERGIC8qIEpTU1ZHTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NzREMUYzMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR051
bWJlci5jcHAgKi87IH07CiAJCTg1NDJBNzk5MEFFNUM5NDQwMERGNThERiAvKiBKU1NWR0VsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODU3NEQxRjIwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmggKi87IH07CiAJCTg1NDJBNzlBMEFFNUM5NDQwMERGNThERiAvKiBKU1NWR0VsZW1l
bnRXcmFwcGVyRmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTc0RDFGMTBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBl
ckZhY3RvcnkuY3BwICovOyB9OwotCQk4NTRGRTczMDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZp
bHRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTRGRTcyNjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAgKi87IH07CiAJCTg1NEZF
NzMxMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcyNzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9k
ZUZpbHRlci5oICovOyB9OwogCQk4NTRGRTczMjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTRGRTcyODBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAg
Ki87IH07CiAJCTg1NEZFNzMzMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTRGRTcy
OTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5oICovOyB9OwpAQCAtNTQ4
OCw5ICs1NDkwLDYgQEAKIAkJQkNCMTZDMjgwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0
eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQjE2QzBGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0LmggKi87IH07
CiAJCUJDQjE2QzI5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkMxMDA5
NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OwogCQlCQ0Ix
NkMyQTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjE2QzExMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDQjc3MzYxMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNCNzczNUUwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRp
dGlvbi5jcHAgKi87IH07Ci0JCUJDQjc3MzYyMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0
ZXJDb25kaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQjc3MzVGMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAq
LzsgfTsKLQkJQkNCNzczNjMwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM2
MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNC
OTJENEYxMjkzNTUwQjAwQzgzODdGIC8qIEZvbnRCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCOTJENEUxMjkzNTUwQjAwQzgzODdGIC8q
IEZvbnRCYXNlbGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDQkI4QUI5MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCQjhBQjUxM0YxQUZC
MDAwNzM0REYwIC8qIFBPREludGVydmFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNCQjhBQkExM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVy
dmFsVHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNCQjhBQjYxM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsVHJlZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDA1Myw2ICsxMDA1Miw3
IEBACiAJCTgzMDAzMEYzMUI3RDMzQTYwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxl
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMw
MDMwRjQxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwMDMwRjcxQjdEMzk4ODAwRUQz
QUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhY2hlZEhUTUxDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzMDZFRkYwMUI4QkNFN0MwMDMxRDAzMiAvKiBOYXRpdmVOb2RlRmlsdGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyog
U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVFbGVtZW50QmFzZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNDhCRkE5MUI4NTcyOTUwMDkxMkYz
NiAvKiBDbGFzc0NvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ2xhc3NDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwMDkwLDYgKzEwMDkwLDggQEAKIAkJODNDMUQ0MjQxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1Bh
dGhTZWdNb3ZldG9SZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0
aFNlZ01vdmV0b1JlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0QyNkQzQzFB
RkRDQzUwMDAxQjM4NzMgLyogQ2hpbGROb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDaGlsZE5vZGUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0QyNkQzRDFBRkRDQzUwMDAxQjM4NzMgLyogUGFy
ZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUGFyZW50Tm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZU5vZGVGaWx0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNGMTIwNkExQjhDMTAzNjAwRDc1RjYzIC8qIEpTTm9k
ZUZpbHRlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U05vZGVGaWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5
RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAyNjUsNyArMTAyNjcsNiBAQAogCQk4
NTQwNzU2NjBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxPcHRpb25FbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NDA3NTY3MEFENkNCRjkwMDYyMEM1NyAvKiBET01I
VE1MT3B0aW9uRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01IVE1MT3B0aW9uRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODU0MDc1NjgwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50SW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxPcHRpb25FbGVt
ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU0RkU3MjYwQTIy
OTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5vZGVGaWx0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NTRGRTcyNzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NTRGRTcyODBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZUZpbHRlckNvbmRp
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZFNzI5MEEyMjk3QkUw
MDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOb2RlRmlsdGVyQ29uZGl0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMzA5NSw5ICsxMzA5Niw2IEBACiAJCUJDQjE2QzBGMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRYU0xTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDYWNoZWRYU0xTdHlsZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
QjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IENhY2hlZFJl
c291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNp
ZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJCUJDQjE2QzExMDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkNCNzczNUUwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRp
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmls
dGVyQ29uZGl0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNCNzczNUYw
QzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0
ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9k
ZUZpbHRlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjkyRDRF
MTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9udEJhc2VsaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDQkI4QUI1MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQT0RJbnRlcnZhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0JCOEFCNjEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBPREludGVydmFsVHJlZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEzOTEsNiArMjEzODksNyBAQAogCQkJCUJDQkZCNTNB
MERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmNwcCAqLywKIAkJCQlCQ0JGQjUz
QjBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oICovLAogCQkJCTY1RTBFOTQz
MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLywKKwkJCQk4M0YxMjA2QTFCOEMx
MDM2MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLywKIAkJCQk3QzkxQTM4RDFC
NDk4QUJFMDAzRjlFRkEgLyogSlNOb2RlT3JTdHJpbmcuY3BwICovLAogCQkJCTdDOTFBMzhFMUI0
OThBQkUwMDNGOUVGQSAvKiBKU05vZGVPclN0cmluZy5oICovLAogCQkJCUYzRDQ2MTQ2MTE2MUQ1
MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgKi8sCkBAIC0yMTU3NCw3ICsyMTU3Myw2
IEBACiAJCQkJMDczNzk0RTcxOUVFMzM1QzAwRTVBMDQ1IC8qIEpTTmF2aWdhdG9yQ3VzdG9tLmNw
cCAqLywKIAkJCQlCQ0Q5QzI2MDBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCAq
LywKIAkJCQlCQzk0MzlDMjExNkNGNDk0MDA0OEM3NTAgLyogSlNOb2RlQ3VzdG9tLmggKi8sCi0J
CQkJQkNCNzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgKi8s
CiAJCQkJMUE3NTBERDMwQTkwRTcyOTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNw
cCAqLywKIAkJCQlCQ0Q5QzI2MTBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlTGlzdEN1c3RvbS5j
cHAgKi8sCiAJCQkJQUQyMEIxOEMxOEU5RDIxNjAwNUE4MDgzIC8qIEpTTm9kZUxpc3RDdXN0b20u
aCAqLywKQEAgLTIxODk1LDggKzIxODkzLDYgQEAKIAkJCQk5M0I3MEQ0RTA5RUIwQzdDMDA5RDg0
NjggLyogSlNFdmVudExpc3RlbmVyLmggKi8sCiAJCQkJOTM1RjQ1NDAwRjdDM0I1RjAwRDdDMUZC
IC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIuY3BwICovLAogCQkJCTkzNUY0NTQxMEY3QzNCNUYwMEQ3
QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmggKi8sCi0JCQkJQkNCNzczNUUwQzE3ODUzRDAw
MTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8sCi0JCQkJQkNCNzczNUYwQzE3
ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oICovLAogCQkJKTsKIAkJCW5h
bWUgPSAiQ2FsbGJhY2sgT2JqZWN0cyI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MjM0MDcsMTAgKzIzNDAzLDExIEBACiAJCQkJODVBQ0E5RjkwQTlCNjMxMDAwNjcxRTkwIC8qIE5h
bWVkTm9kZU1hcC5pZGwgKi8sCiAJCQkJQTgxODcyMTkwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVO
b2RlTGlzdC5jcHAgKi8sCiAJCQkJQTgxODcyMTMwOTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVOb2Rl
TGlzdC5oICovLAorCQkJCTgzMDZFRkYwMUI4QkNFN0MwMDMxRDAzMiAvKiBOYXRpdmVOb2RlRmls
dGVyLmNwcCAqLywKKwkJCQk4M0U5NTlFMTFCOEJDMjJCMDA0RDkzODUgLyogTmF0aXZlTm9kZUZp
bHRlci5oICovLAogCQkJCUE4QzRBN0VFMDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCAqLywK
IAkJCQkxNDExNUI1MTA5Rjg0QjcxMDBDQTRGQzEgLyogTm9kZS5oICovLAogCQkJCTE0REMwRDBC
MDlGRUNGQTQwMDdCMDIzNSAvKiBOb2RlLmlkbCAqLywKLQkJCQk4NTRGRTcyNjBBMjI5N0JFMDA1
OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAgKi8sCiAJCQkJODU0RkU3MjcwQTIyOTdCRTAwNThEN0FE
IC8qIE5vZGVGaWx0ZXIuaCAqLywKIAkJCQkxNDExNUFGOTA5Rjg0N0Q2MDBDQTRGQzEgLyogTm9k
ZUZpbHRlci5pZGwgKi8sCiAJCQkJODU0RkU3MjgwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0
ZXJDb25kaXRpb24uY3BwICovLApAQCAtMjQ3NzIsNiArMjQ3NjksNyBAQAogCQkJCTg1M0JGNERC
MEFCQjZCNTUwMDg2NDdCQiAvKiBET01Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQwNzUy
NjBBRDZDNjY3MDA2MjBDNTcgLyogRE9NTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODVCNDk4RkIwQURCMzQwMjAwOTI1Q0JCIC8qIERPTU5vZGVJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJODNCMkQxNzUxQjhCQ0Q2QTAwQTAyRTQ3IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTg1NTI2QzM3MEFCMEExN0UwMDAzMDJFQSAvKiBET01Ob2RlSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MEI0MUMyMEFEOUU3RTcwMEE2RUQ0RiAvKiBE
T01Ob2RlSXRlcmF0b3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVBQ0FBOEQwQTlC
NzU5QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjU0LDcg
KzI1NjUyLDYgQEAKIAkJCQkwNzNCRTM0RDE3RDE3RTdBMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JV
c2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQzOUMzMTE2
Q0Y0OTQwMDQ4Qzc1MCAvKiBKU05vZGVDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTE1
QjczMDlGODRDRDYwMENBNEZDMSAvKiBKU05vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUJDQjc3MzYyMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNzUwRDhFMEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEOUMyQzMwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTm9k
ZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEMjBCMThEMThFOUQyMzcwMDVBODA4MyAvKiBK
U05vZGVMaXN0Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKQEAgLTI4OTA1LDYgKzI4OTAyLDcgQEAK
IAkJCQlCQzJFRDZCQzBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZEQTE1RTlEMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZERjdFOUMzMTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlv
QnVmZmVyQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODNGMTIwNkIxQjhDMTA0NzAw
RDc1RjYzIC8qIEpTTm9kZUZpbHRlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREEx
NUU5RjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkRFQUFBRjMxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9CdWZmZXJT
b3VyY2VOb2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUE1MTJCMDNFRTEw
MDNBNTgzQSAvKiBKU0F1ZGlvQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5MTgyLDYg
KzI5MTgwLDcgQEAKIAkJCQk1MTFFRjJEMTE3RjBGREYxMDBFNEZBMTYgLyogSlNJREJPYmplY3RT
dG9yZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFFRjJDODE3RjBGRDM1MDBFNEZB
MTYgLyogSlNJREJPcGVuREJSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkM5
MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
ODMwNkVGRjExQjhCQ0VBNTAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTExRUYyQ0ExN0YwRkQzNTAwRTRGQTE2IC8qIEpTSURCVHJhbnNhY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRUYyQ0IxN0YwRkQzNTAwRTRGQTE2IC8qIEpTSURC
VmVyc2lvbkNoYW5nZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNkM0OUYzMEQ3REJB
MDUwMEZGQTU1OCAvKiBKU0ltYWdlQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
OTI0Nyw4ICsyOTI0Niw2IEBACiAJCQkJMTREQzBEMzcwOUZFRDA3MzAwN0IwMjM1IC8qIEpTTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzI2NDBDMTdBQTY3MDA1QzkwQTIgLyogSlNO
b2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MTE1QjcyMDlGODRDRDYwMENBNEZD
MSAvKiBKU05vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNCNzczNjEwQzE3ODUz
RDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlCQ0I3NzM2MzBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBNzUwRDhEMEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc1MERENDBBOTBFNzI5MDAwRkYyMTUgLyogSlNO
b2RlSXRlcmF0b3JDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMyQzIwQzE3QjY5
RTAwNUM5MEEyIC8qIEpTTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTc4NSw3ICsy
OTc4Miw2IEBACiAJCQkJMjY3NzI2MDAxQTVCM0FEOTAwM0MyNEREIC8qIE5GQVRvREZBLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDRUY0M0UwMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJ
bWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEM0QTgwMDA5RDU2MzI3MDAwM0FDOEQgLyog
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk4NTRGRTczMDBBMjI5N0JFMDA1OEQ3QUQgLyog
Tm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTczMjBBMjI5N0JFMDA1OEQ3
QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTcz
NDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTRGRkMwMjJCMTY0M0I3MTAwMDRFMTYzOCAvKiBOb2RlUmFyZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dPYmplY3RO
b2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qv
R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmluZGV4IGFkZmQ4YzE4OThmMzc1NWQ0ZjU5
NzJkOTIyN2FkY2I1OTdkMWQ3YWYuLmUwYWJiN2M2NGUxZjA2NDE3OWUwMDliNWZkOWQzMTdjZjdh
YTk0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVj
dE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0yOSw3ICsyOSw3IEBAIEdP
YmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uOjp+R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24oKQog
ICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKG1fZmlsdGVyLmdldCgpKSwgIndlYmtpdC1j
b3JlLW5vZGUtZmlsdGVyIiwgbnVsbHB0cik7CiB9CiAKLXNob3J0IEdPYmplY3ROb2RlRmlsdGVy
Q29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9kZSogbm9kZSkgY29uc3QK
K3Nob3J0IEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKE5vZGUqIG5vZGUp
IGNvbnN0CiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklM
VEVSX1JFSkVDVDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qv
R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaAppbmRleCA2MTI4MDI1ZmZjODdjYWEz
ZDEyMTY2YjNhOWY4ODhiNWVhZTA5OThjLi41MzY2YTUzOGM1NDFhOTM5MThiOTkxYmNiNzdmZGM4
YzI4MmU3NDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dP
YmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
Z29iamVjdC9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oCkBAIC0zNiw3ICszNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR09iamVjdE5vZGVGaWx0ZXJDb25k
aXRpb24oZmlsdGVyKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpT
Qzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0OworICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9k
ZShOb2RlKikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgR09iamVjdE5vZGVGaWx0
ZXJDb25kaXRpb24oV2ViS2l0RE9NTm9kZUZpbHRlciogZmlsdGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKaW5k
ZXggMjU4ZmM0YWQ4ZjlkYmQzZDA2NjRhNDNjM2QwZjQ5N2M0MGY4YjVkYi4uZDgwZmU3MDJmMTQ1
MTcxMDgxNWYyNzUxNmJhMmY0MTgxMjBkZjI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwCkBAIC0yMCw3ICsy
MCw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZUZpbHRlci5oIgogCiAjaW5jbHVkZSAiR09i
amVjdE5vZGVGaWx0ZXJDb25kaXRpb24uaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCisjaW5j
bHVkZSAiTmF0aXZlTm9kZUZpbHRlci5oIgogI2luY2x1ZGUgIldlYktpdERPTU5vZGUuaCIKICNp
bmNsdWRlICJXZWJLaXRET01Ob2RlRmlsdGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CkBAIC03Miw3ICs3Miw3IEBAIFJlZlB0cjxXZWJDb3JlOjpOb2RlRmlsdGVyPiBjb3Jl
KFdlYktpdERPTU5vZGVGaWx0ZXIqIG5vZGVGaWx0ZXIpCiAKICAgICBSZWZQdHI8V2ViQ29yZTo6
Tm9kZUZpbHRlcj4gY29yZU5vZGVGaWx0ZXIgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlRmls
dGVyKj4oZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1Qobm9kZUZpbHRlciksICJ3ZWJraXQtY29y
ZS1ub2RlLWZpbHRlciIpKTsKICAgICBpZiAoIWNvcmVOb2RlRmlsdGVyKSB7Ci0gICAgICAgIGNv
cmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6Tm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6OkdPYmpl
Y3ROb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUobm9kZUZpbHRlcikpOworICAgICAgICBjb3Jl
Tm9kZUZpbHRlciA9IFdlYkNvcmU6Ok5hdGl2ZU5vZGVGaWx0ZXI6OmNyZWF0ZShXZWJDb3JlOjpH
T2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKG5vZGVGaWx0ZXIpKTsKICAgICAgICAg
bm9kZUZpbHRlck1hcCgpLmFkZChjb3JlTm9kZUZpbHRlci5nZXQoKSwgbm9kZUZpbHRlcik7CiAg
ICAgICAgIGdfb2JqZWN0X3dlYWtfcmVmKEdfT0JKRUNUKG5vZGVGaWx0ZXIpLCBub2RlRmlsdGVy
T2JqZWN0RGVzdHJveWVkQ2FsbGJhY2ssIGNvcmVOb2RlRmlsdGVyLmdldCgpKTsKICAgICAgICAg
Z19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1Qobm9kZUZpbHRlciksICJ3ZWJraXQtY29yZS1ub2Rl
LWZpbHRlciIsIGNvcmVOb2RlRmlsdGVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDFiNWU5NWIyYzdiNGU1NTFi
YWJjMjk3OTEwYjQ5YmE3M2IyZWFhM2EuLmI1YzVmZjJlNTYwMDVmN2NmMzYwMzc0NDhkNTlhNmVl
YjNiYTVkMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGlu
Z3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcApAQCAtMTE0LDcgKzExNCw2IEBACiAjaW5jbHVkZSAiSlNNdXRhdGlvbk9i
c2VydmVyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNOb2RlQ3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUZpbHRlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNO
b2RlSXRlcmF0b3JDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTm9kZUxpc3RDdXN0b20uY3BwIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCmluZGV4IGQ5
OGU2MzI2Y2IzZTQ5Mzg4YjUyMzY3ZTRmNjI5NDA3YzhjN2E2MTMuLjZmZmM1Njg1NTJjYmFjZDI3
YzJiMGRhYjc5ZTdiZmQyOWM5ODM0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NhbGxiYWNrRGF0YS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNy0yMDA5LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNTEgKzMzLDQ3IEBACiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmgiCisj
aW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKICAg
ICAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU0NhbGxiYWNrRGF0YTo6ZGVsZXRlRGF0
YSh2b2lkKiBjb250ZXh0KQorSlNWYWx1ZSBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2so
SlNPYmplY3QqIGNhbGxiYWNrLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncywgQ2FsbGJhY2tU
eXBlIG1ldGhvZCwgUHJvcGVydHlOYW1lIGZ1bmN0aW9uTmFtZSwgTmFrZWRQdHI8RXhjZXB0aW9u
PiYgcmV0dXJuZWRFeGNlcHRpb24pCiB7Ci0gICAgZGVsZXRlIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tEYXRhKj4oY29udGV4dCk7Ci19Ci0KLUpTVmFsdWUgSlNDYWxsYmFja0RhdGE6Omludm9rZUNh
bGxiYWNrKE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzLCBDYWxsYmFja1R5cGUgbWV0aG9kLCBQ
cm9wZXJ0eU5hbWUgZnVuY3Rpb25OYW1lLCBOYWtlZFB0cjxFeGNlcHRpb24+JiByZXR1cm5lZEV4
Y2VwdGlvbikKLXsKLSAgICBBU1NFUlQoY2FsbGJhY2soKSk7Ci0gICAgcmV0dXJuIGludm9rZUNh
bGxiYWNrKGNhbGxiYWNrKCksIGFyZ3MsIG1ldGhvZCwgZnVuY3Rpb25OYW1lLCByZXR1cm5lZEV4
Y2VwdGlvbik7Ci19CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKIAotSlNWYWx1ZSBKU0NhbGxiYWNr
RGF0YTo6aW52b2tlQ2FsbGJhY2soSlNWYWx1ZSB0aGlzVmFsdWUsIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyJiBhcmdzLCBDYWxsYmFja1R5cGUgbWV0aG9kLCBQcm9wZXJ0eU5hbWUgZnVuY3Rpb25OYW1l
LCBOYWtlZFB0cjxFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlvbikKLXsKLSAgICBBU1NFUlQo
Y2FsbGJhY2soKSk7Ci0gICAgQVNTRVJUKGdsb2JhbE9iamVjdCgpKTsKKyAgICBhdXRvKiBnbG9i
YWxPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNhbGxiYWNrLT5nbG9i
YWxPYmplY3QoKSk7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdCk7CiAKLSAgICBFeGVjU3RhdGUq
IGV4ZWMgPSBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogICAgIEpTVmFsdWUgZnVuY3Rpb247CiAg
ICAgQ2FsbERhdGEgY2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBDYWxsVHlwZU5v
bmU7CiAKICAgICBpZiAobWV0aG9kICE9IENhbGxiYWNrVHlwZTo6T2JqZWN0KSB7Ci0gICAgICAg
IGZ1bmN0aW9uID0gY2FsbGJhY2soKTsKLSAgICAgICAgY2FsbFR5cGUgPSBjYWxsYmFjaygpLT5t
ZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShjYWxsYmFjaygpLCBjYWxsRGF0YSk7CisgICAgICAg
IGZ1bmN0aW9uID0gY2FsbGJhY2s7CisgICAgICAgIGNhbGxUeXBlID0gY2FsbGJhY2stPm1ldGhv
ZFRhYmxlKCktPmdldENhbGxEYXRhKGNhbGxiYWNrLCBjYWxsRGF0YSk7CiAgICAgfQogICAgIGlm
IChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgaWYgKG1ldGhvZCA9PSBDYWxs
YmFja1R5cGU6OkZ1bmN0aW9uKQorICAgICAgICBpZiAobWV0aG9kID09IENhbGxiYWNrVHlwZTo6
RnVuY3Rpb24pIHsKKyAgICAgICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gRXhjZXB0aW9uOjpj
cmVhdGUoZXhlYy0+dm0oKSwgY3JlYXRlVHlwZUVycm9yKGV4ZWMpKTsKICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlKCk7CisgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIWZ1bmN0aW9uTmFt
ZS5pc051bGwoKSk7Ci0gICAgICAgIGZ1bmN0aW9uID0gY2FsbGJhY2soKS0+Z2V0KGV4ZWMsIGZ1
bmN0aW9uTmFtZSk7CisgICAgICAgIGZ1bmN0aW9uID0gY2FsbGJhY2stPmdldChleGVjLCBmdW5j
dGlvbk5hbWUpOwogICAgICAgICBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxs
RGF0YSk7Ci0gICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIGlm
IChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAgICAgIHJldHVybmVkRXhjZXB0
aW9uID0gRXhjZXB0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgY3JlYXRlVHlwZUVycm9yKGV4ZWMp
KTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBBU1NFUlQoIWZ1bmN0aW9uLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKGNhbGxUeXBlICE9IENh
bGxUeXBlTm9uZSk7CiAKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gZ2xv
YmFsT2JqZWN0KCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0ID0gZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CiAgICAgLy8gV2Ugd2lsbCBmYWlsIHRvIGdldCB0aGUgY29udGV4dCBpZiB0aGUgZnJhbWUg
aGFzIGJlZW4gZGV0YWNoZWQuCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gSlNW
YWx1ZSgpOwpAQCAtODYsMTIgKzgyLDE3IEBAIEpTVmFsdWUgSlNDYWxsYmFja0RhdGE6Omludm9r
ZUNhbGxiYWNrKEpTVmFsdWUgdGhpc1ZhbHVlLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYKIAogICAg
IHJldHVybmVkRXhjZXB0aW9uID0gbnVsbHB0cjsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNvbnRl
eHQtPmlzRG9jdW1lbnQoKQotICAgICAgICA/IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChl
eGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3MsIHJldHVy
bmVkRXhjZXB0aW9uKQotICAgICAgICA6IEpTQzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5
cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3MsIHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICAg
ICAgPyBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBl
LCBjYWxsRGF0YSwgY2FsbGJhY2ssIGFyZ3MsIHJldHVybmVkRXhjZXB0aW9uKQorICAgICAgICA6
IEpTQzo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBjYWxsYmFjaywg
YXJncywgcmV0dXJuZWRFeGNlcHRpb24pOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDYWxsRnVuY3Rpb24oY29va2llLCBjb250ZXh0KTsKIAogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK2Jvb2wgSlNDYWxsYmFja0RhdGFXZWFrOjpXZWFrT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3sKKyAgICByZXR1cm4gdmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qo
Y29udGV4dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCmluZGV4IDRlZDA4MDc3ZTExNGNlZTMxMjhmY2Rl
MjNiNDVkOGQ2NWU0YTM1ZDYuLjdhY2Y5MjFmNDhlMzViYzBmODBhNTcxN2I1ZGUyNWQ1YjgzODE4
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDksIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC00NSwxMyArNDUsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBKU0NhbGxiYWNrRGF0YSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgZGVsZXRlRGF0YSh2
b2lkKik7CisgICAgZW51bSBjbGFzcyBDYWxsYmFja1R5cGUgeyBGdW5jdGlvbiwgT2JqZWN0LCBG
dW5jdGlvbk9yT2JqZWN0IH07CiAKLSAgICBKU0NhbGxiYWNrRGF0YShKU0M6OkpTT2JqZWN0KiBj
YWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICAgICAgOiBtX2Nh
bGxiYWNrKGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbGJhY2spCi0gICAgICAgICwgbV9nbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QpCitwcm90ZWN0ZWQ6CisgICAg
SlNDYWxsYmFja0RhdGEoKQogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgLCBtX3RocmVhZChjdXJy
ZW50VGhyZWFkKCkpCisgICAgICAgIDogbV90aHJlYWQoY3VycmVudFRocmVhZCgpKQogI2VuZGlm
CiAgICAgewogICAgIH0KQEAgLTYyLDI1ICs2MSw2MSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VChtX3RocmVhZCA9PSBjdXJyZW50VGhyZWFkKCkpOwogI2VuZGlmCiAgICAgfQotCi0gICAgSlND
OjpKU09iamVjdCogY2FsbGJhY2soKSB7IHJldHVybiBtX2NhbGxiYWNrLmdldCgpOyB9Ci0gICAg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0
LmdldCgpOyB9CiAgICAgCi0gICAgZW51bSBjbGFzcyBDYWxsYmFja1R5cGUgeyBGdW5jdGlvbiwg
T2JqZWN0LCBGdW5jdGlvbk9yT2JqZWN0IH07Ci0gICAgSlNDOjpKU1ZhbHVlIGludm9rZUNhbGxi
YWNrKEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXImLCBDYWxsYmFja1R5cGUsIEpTQzo6UHJvcGVy
dHlOYW1lIGZ1bmN0aW9uTmFtZSwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4
Y2VwdGlvbik7Ci0gICAgSlNDOjpKU1ZhbHVlIGludm9rZUNhbGxiYWNrKEpTQzo6SlNWYWx1ZSB0
aGlzVmFsdWUsIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXImLCBDYWxsYmFja1R5cGUsIEpTQzo6
UHJvcGVydHlOYW1lIGZ1bmN0aW9uTmFtZSwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1
cm5lZEV4Y2VwdGlvbik7CisgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBpbnZva2VDYWxsYmFjayhK
U0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYsIENhbGxi
YWNrVHlwZSwgSlNDOjpQcm9wZXJ0eU5hbWUgZnVuY3Rpb25OYW1lLCBOYWtlZFB0cjxKU0M6OkV4
Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uKTsKIAogcHJpdmF0ZToKLSAgICBKU0M6OlN0cm9u
ZzxKU0M6OkpTT2JqZWN0PiBtX2NhbGxiYWNrOwotICAgIEpTQzo6U3Ryb25nPEpTRE9NR2xvYmFs
T2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKICNpZm5kZWYgTkRFQlVHCiAgICAgVGhyZWFkSWRlbnRp
ZmllciBtX3RocmVhZDsKICNlbmRpZgogfTsKIAorY2xhc3MgSlNDYWxsYmFja0RhdGFTdHJvbmcg
OiBwdWJsaWMgSlNDYWxsYmFja0RhdGEgeworcHVibGljOgorICAgIEpTQ2FsbGJhY2tEYXRhU3Ry
b25nKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCB2b2lkKikKKyAgICAgICAgOiBtX2NhbGxiYWNr
KGNhbGxiYWNrLT5nbG9iYWxPYmplY3QoKS0+dm0oKSwgY2FsbGJhY2spCisgICAgeworICAgIH0K
KworICAgIEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrKCkgeyByZXR1cm4gbV9jYWxsYmFjay5nZXQo
KTsgfQorICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBKU0M6
OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fY2FsbGJhY2stPmdsb2JhbE9iamVjdCgpKTsg
fQorCisgICAgSlNDOjpKU1ZhbHVlIGludm9rZUNhbGxiYWNrKEpTQzo6TWFya2VkQXJndW1lbnRC
dWZmZXImIGFyZ3MsIENhbGxiYWNrVHlwZSBjYWxsYmFja1R5cGUsIEpTQzo6UHJvcGVydHlOYW1l
IGZ1bmN0aW9uTmFtZSwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlv
bikKKyAgICB7CisgICAgICAgIHJldHVybiBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2so
Y2FsbGJhY2soKSwgYXJncywgY2FsbGJhY2tUeXBlLCBmdW5jdGlvbk5hbWUsIHJldHVybmVkRXhj
ZXB0aW9uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVj
dD4gbV9jYWxsYmFjazsKK307CisKK2NsYXNzIEpTQ2FsbGJhY2tEYXRhV2VhayA6IHB1YmxpYyBK
U0NhbGxiYWNrRGF0YSB7CitwdWJsaWM6CisgICAgSlNDYWxsYmFja0RhdGFXZWFrKEpTQzo6SlNP
YmplY3QqIGNhbGxiYWNrLCB2b2lkKiBvd25lcikKKyAgICAgICAgOiBtX2NhbGxiYWNrKGNhbGxi
YWNrLCAmbV93ZWFrT3duZXIsIG93bmVyKQorICAgIHsKKyAgICB9CisKKyAgICBKU0M6OkpTT2Jq
ZWN0KiBjYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJhY2suZ2V0KCk7IH0KKyAgICBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gSlNDOjpqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihtX2NhbGxiYWNrLT5nbG9iYWxPYmplY3QoKSk7IH0KKworICAgIEpTQzo6SlNW
YWx1ZSBpbnZva2VDYWxsYmFjayhKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzLCBDYWxs
YmFja1R5cGUgY2FsbGJhY2tUeXBlLCBKU0M6OlByb3BlcnR5TmFtZSBmdW5jdGlvbk5hbWUsIE5h
a2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24pCisgICAgeworICAgICAg
ICByZXR1cm4gSlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKGNhbGxiYWNrKCksIGFyZ3Ms
IGNhbGxiYWNrVHlwZSwgZnVuY3Rpb25OYW1lLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgfQor
Citwcml2YXRlOgorICAgIGNsYXNzIFdlYWtPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVP
d25lciB7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
Jik7CisgICAgfTsKKyAgICBXZWFrT3duZXIgbV93ZWFrT3duZXI7CisgICAgSlNDOjpXZWFrPEpT
Qzo6SlNPYmplY3Q+IG1fY2FsbGJhY2s7Cit9OworCiBjbGFzcyBEZWxldGVDYWxsYmFja0RhdGFU
YXNrIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewogcHVibGljOgotICAg
IERlbGV0ZUNhbGxiYWNrRGF0YVRhc2soSlNDYWxsYmFja0RhdGEqIGRhdGEpCisgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIENhbGxiYWNrRGF0YVR5cGU+CisgICAgZXhwbGljaXQgRGVsZXRlQ2FsbGJh
Y2tEYXRhVGFzayhDYWxsYmFja0RhdGFUeXBlKiBkYXRhKQogICAgICAgICA6IFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzazo6Q2xlYW51cFRh
c2ssIFtkYXRhXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKICAgICAgICAgICAgIGRlbGV0
ZSBkYXRhOwogICAgICAgICB9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdiNDExOWE1YTVkMGI3Mjg5ZjNlMTM2OGQ5MTBkNzZhNzk4ZDhiNzcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAg
QEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20p
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIKLQotI2luY2x1ZGUg
IkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIkpTTm9kZS5oIgotI2luY2x1ZGUg
IkpTTm9kZUZpbHRlci5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKLSNpbmNsdWRlIDxydW50
aW1lL0Vycm9yLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1KU05vZGVGaWx0ZXJDb25kaXRpb246
OkpTTm9kZUZpbHRlckNvbmRpdGlvbihWTSYsIE5vZGVGaWx0ZXIqIG93bmVyLCBKU1ZhbHVlIGZp
bHRlcikKLSAgICA6IG1fZmlsdGVyKGZpbHRlci5pc09iamVjdCgpID8gV2VhazxKU09iamVjdD4o
anNDYXN0PEpTT2JqZWN0Kj4oZmlsdGVyKSwgJm1fd2Vha093bmVyLCBvd25lcikgOiBudWxscHRy
KQotewotfQotCi1zaG9ydCBKU05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIE5vZGUqIGZpbHRlck5vZGUpIGNvbnN0Ci17Ci0gICAgSlNMb2NrSG9s
ZGVyIGxvY2soZXhlYyk7Ci0KLSAgICBpZiAoIW1fZmlsdGVyKQotICAgICAgICByZXR1cm4gTm9k
ZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLQotICAgIC8vIEV4ZWMgaXMgbnVsbCBpZiB3ZSd2ZSBi
ZWVuIGNhbGxlZCBmcm9tIGEgbm9uLUphdmFTY3JpcHQgbGFuZ3VhZ2UgYW5kIHRoZSBkb2N1bWVu
dAotICAgIC8vIGlzIG5vIGxvbmdlciBhYmxlIHRvIHJ1biBKYXZhU2NyaXB0IChlLmcuLCBpdCdz
IGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBmcmFtZSkuCi0gICAgaWYgKCFleGVjKQotICAgICAgICBy
ZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKLQotICAgIEpTVmFsdWUgZmlsdGVyID0g
bV9maWx0ZXIuZ2V0KCk7Ci0gICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQ2FsbFR5cGUgY2Fs
bFR5cGUgPSBnZXRDYWxsRGF0YShmaWx0ZXIsIGNhbGxEYXRhKTsKLSAgICBpZiAoY2FsbFR5cGUg
PT0gQ2FsbFR5cGVOb25lKSB7Ci0gICAgICAgIGZpbHRlciA9IGZpbHRlci5nZXQoZXhlYywgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAiYWNjZXB0Tm9kZSIpKTsKLSAgICAgICAgY2FsbFR5
cGUgPSBnZXRDYWxsRGF0YShmaWx0ZXIsIGNhbGxEYXRhKTsKLSAgICAgICAgaWYgKGNhbGxUeXBl
ID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlv
bihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIk5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90
IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbiIpKTsKLSAgICAgICAgICAgIHJldHVybiBOb2Rl
RmlsdGVyOjpGSUxURVJfUkVKRUNUOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgYXJnczsKLSAgICAvLyBGSVhNRTogVGhlIG5vZGUgc2hvdWxkIGhhdmUgdGhl
IHByb3RvdHlwZSBjaGFpbiB0aGF0IGNhbWUgZnJvbSBpdHMgZG9jdW1lbnQsIG5vdAotICAgIC8v
IHdoYXRldmVyIHByb3RvdHlwZSBjaGFpbiBtaWdodCBiZSBvbiB0aGUgd2luZG93IHRoaXMgZmls
dGVyIGNhbWUgZnJvbS4gQnVnIDI3NjYyCi0gICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBkZXBy
ZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpLCBmaWx0ZXJOb2RlKSk7Ci0gICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklM
VEVSX1JFSkVDVDsKLQotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNDOjpjYWxsKGV4ZWMsIGZpbHRl
ciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2ZpbHRlci5nZXQoKSwgYXJncyk7Ci0gICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JF
SkVDVDsKLQotICAgIGludCBpbnRSZXN1bHQgPSByZXN1bHQudG9JbnQzMihleGVjKTsKLSAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxU
RVJfUkVKRUNUOwotCi0gICAgcmV0dXJuIGludFJlc3VsdDsKLX0KLQotYm9vbCBKU05vZGVGaWx0
ZXJDb25kaXRpb246OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Ci17Ci0gICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KGNvbnRleHQpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhNmExYmUzMTc4OTlhNWQxMWFmNzMyMmUwOTI2ZjY0MjExNjgwM2MxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBA
QAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkK
LSAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRlZiBKU05v
ZGVGaWx0ZXJDb25kaXRpb25faAotI2RlZmluZSBKU05vZGVGaWx0ZXJDb25kaXRpb25faAotCi0j
aW5jbHVkZSAiTm9kZUZpbHRlckNvbmRpdGlvbi5oIgotI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgot
I2luY2x1ZGUgPGhlYXAvV2Vha0lubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGlu
ZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBOb2RlOwotICAg
IGNsYXNzIE5vZGVGaWx0ZXI7Ci0KLSAgICBjbGFzcyBKU05vZGVGaWx0ZXJDb25kaXRpb24gOiBw
dWJsaWMgTm9kZUZpbHRlckNvbmRpdGlvbiB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMg
UmVmPEpTTm9kZUZpbHRlckNvbmRpdGlvbj4gY3JlYXRlKEpTQzo6Vk0mIHZtLCBOb2RlRmlsdGVy
KiBvd25lciwgSlNDOjpKU1ZhbHVlIGZpbHRlcikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSlNOb2RlRmlsdGVyQ29uZGl0aW9uKHZtLCBvd25lciwgZmlsdGVy
KSk7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEpTTm9kZUZpbHRlckNvbmRp
dGlvbihKU0M6OlZNJiwgTm9kZUZpbHRlciogb3duZXIsIEpTQzo6SlNWYWx1ZSBmaWx0ZXIpOwot
Ci0gICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUq
KSBjb25zdDsKLQotICAgICAgICBjbGFzcyBXZWFrT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFu
ZGxlT3duZXIgewotICAgICAgICAgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImKTsKLSAgICAgICAgfTsKLSAgICAgICAgV2Vha093bmVyIG1fd2Vha093bmVyOwot
ICAgICAgICBtdXRhYmxlIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX2ZpbHRlcjsKLSAgICB9
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBKU05vZGVGaWx0ZXJDb25k
aXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1
c3RvbS5jcHAKaW5kZXggNzA1MzNkYjE2NDkwZjMwMzUyODhiMGUzMTYxMDVlZTNlN2Y2NDgwMC4u
NTg5OTIyNDVkNzdhYWU5MzJhZWViYmIwZGI4ZTAyNDJiYmI4MmJiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMCw0
MSArMTAsNTggQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNOb2Rl
RmlsdGVyLmgiCiAKLSNpbmNsdWRlICJKU05vZGVGaWx0ZXJDb25kaXRpb24uaCIKKyNpbmNsdWRl
ICJKU0NhbGxiYWNrRGF0YS5oIgorI2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgIk5vZGVG
aWx0ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTTm9kZUZpbHRlcjo6dmlz
aXRBZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2
aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJmltcGwoKSk7Ci19Cit1c2luZyBuYW1lc3BhY2UgSlNDOwog
Ci1SZWZQdHI8Tm9kZUZpbHRlcj4gSlNOb2RlRmlsdGVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0s
IEpTQzo6SlNWYWx1ZSB2YWx1ZSkKKy8vIEZJWE1FOiBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGlz
IGN1cnJlbnRseSBub3QgYWJsZSB0byBnZW5lcmF0ZQorLy8gY2FsbGJhY2sgZnVuY3Rpb24gY2Fs
bHMgaWYgdGhleSByZXR1cm4gc29tZXRoaW5nIG90aGVyIHRoYW4gYQorLy8gYm9vbGVhbi4KK3Vp
bnQxNl90IEpTTm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShOb2RlKiBub2RlKQogewotICAgIGlmICh2
YWx1ZS5pbmhlcml0cyhKU05vZGVGaWx0ZXI6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiAmSlND
Ojpqc0Nhc3Q8SlNOb2RlRmlsdGVyKj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpOworICAgIFJl
ZjxKU05vZGVGaWx0ZXI+IHByb3RlY3QoKnRoaXMpOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2so
bV9kYXRhLT5nbG9iYWxPYmplY3QoKS0+dm0oKSk7CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBt
X2RhdGEtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIG1fZGF0YS0+Z2xvYmFsT2Jq
ZWN0KCksIG5vZGUpKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOworCisgICAgTmFrZWRQdHI8RXhjZXB0aW9u
PiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBKU1ZhbHVlIHZhbHVlID0gbV9kYXRhLT5pbnZva2VD
YWxsYmFjayhhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpGdW5jdGlvbk9yT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJhY2NlcHROb2RlIiksIHJldHVybmVk
RXhjZXB0aW9uKTsKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgLy8gUmV0
aHJvdyBleGNlcHRpb24uCisgICAgICAgIGV4ZWMtPnZtKCkuc2V0RXhjZXB0aW9uKHJldHVybmVk
RXhjZXB0aW9uKTsKKworICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsK
KyAgICB9CiAKLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHVpbnQxNl90IHJlc3VsdCA9IHRvVUludDE2KGV4ZWMsIHZhbHVlLCBOb3JtYWxD
b252ZXJzaW9uKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
biBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUOwogCi0gICAgUmVmUHRyPE5vZGVGaWx0ZXI+IHJl
c3VsdCA9IE5vZGVGaWx0ZXI6OmNyZWF0ZSgpOwotICAgIHJlc3VsdC0+c2V0Q29uZGl0aW9uKEpT
Tm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKHZtLCByZXN1bHQuZ2V0KCksIHZhbHVlKSk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDNiZTE1NjM2YTVhOGRmYTNi
NTcxY2NhODQxYmQyZDMwNWFlZGU2MjkuLjZjMzc3NjFiMTNlNjc5YWIwYzZiMWRkZWZkMDY3N2Nk
Yzk4YWNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05v
ZGVGaWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09i
akNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2JqQ05vZGVGaWx0ZXJDb25k
aXRpb24oZmlsdGVyKSk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2Vw
dE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgc2hv
cnQgYWNjZXB0Tm9kZShOb2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBPYmpD
Tm9kZUZpbHRlckNvbmRpdGlvbihpZCA8RE9NTm9kZUZpbHRlcj4gZmlsdGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24u
bW0KaW5kZXggMjRiNTE5MmZmNDEzMDA1MzZhMTVhMDYwZjE5MjVmYWM1N2ExMzNjMi4uOTg0YTFh
YWE1Zjk1NWRkMTNlYzI0MjQ1NzE1Mjc5YWI5YmM1NmY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1tCkBAIC0z
Nyw3ICszNyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc2hvcnQgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoRXhlY1N0YXRlKiwg
Tm9kZSogbm9kZSkgY29uc3QKK3Nob3J0IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHRO
b2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4g
Tm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IGJlNWQwNjVkMDA0
ZDBmOTgwNmI4MDAzMzY3ZjFkNDAxNWY2NjAzNTIuLjk1ZmMxMDFmNDNlN2NlYThmYTFjNmFhNDA4
MmU2OTBkZDhhZmQ5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtMzA1LDcgKzMwNSw3IEBAIHN1YiBT
a2lwRnVuY3Rpb24gewogICAgICMgc2VxdWVuY2U8VD4gcGFyYW1ldGVycywgYmVjYXVzZSB0aGlz
IGNvZGUgZ2VuZXJhdG9yIGRvZXNuJ3Qga25vdyBob3cgdG8gYXV0by1nZW5lcmF0ZQogICAgICMg
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBvciBzZXF1ZW5jZTxUPi4gU2tpcCBFdmVudExpc3RlbmVy
cyBiZWNhdXNlIHRoZXkgYXJlIGhhbmRsZWQgZWxzZXdoZXJlLgogICAgIGZvcmVhY2ggbXkgJHBh
cmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCRwYXJhbS0+dHlwZSkgfHwKKyAgICAgICAgaWYgKCRj
b2RlR2VuZXJhdG9yLT5Jc0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlKCRwYXJhbS0+dHlw
ZSkgfHwKICAgICAgICAgICAgICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNsYW1wIn0g
fHwKICAgICAgICAgICAgICRwYXJhbS0+dHlwZSBlcSAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIg
fHwKICAgICAgICAgICAgICRwYXJhbS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIgfHwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5k
ZXggZTllNzQ1MDIzNzM2Yjk1NzAwMGJjNDU3Y2FjMTY5ZmEyMmM2Y2JiOC4uYmYxMzRiM2RkNWVl
YTZjZThlYWE1NDc2NjkyOWExNjE5NTExMWNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE5MSw2ICsxOTEsMTMgQEAg
c3ViIEdldENhbGxiYWNrQ2xhc3NOYW1lCiAgICAgcmV0dXJuICJKUyRjbGFzc05hbWUiOwogfQog
CitzdWIgR2V0SlNDYWxsYmFja0RhdGFUeXBlCit7CisgICAgbXkgJGNhbGxiYWNrSW50ZXJmYWNl
ID0gc2hpZnQ7CisKKyAgICByZXR1cm4gJGNhbGxiYWNrSW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSXNXZWFrQ2FsbGJhY2sifSA/ICJKU0NhbGxiYWNrRGF0YVdlYWsiIDogIkpTQ2Fs
bGJhY2tEYXRhU3Ryb25nIjsKK30KKwogc3ViIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbAogewog
ICAgIG15ICR0eXBlID0gc2hpZnQ7CkBAIC0zNDc1LDYgKzM0ODIsOCBAQCBzdWIgR2VuZXJhdGVD
YWxsYmFja0hlYWRlcgogICAgICMgRGVzdHJ1Y3RvcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdmlydHVhbCB+JGNsYXNzTmFtZSgpO1xuIik7CiAKKyAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgICIgLiBHZXRKU0NhbGxiYWNrRGF0YVR5cGUoJGludGVyZmFjZSkgLiAiKiBjYWxs
YmFja0RhdGEoKSB7IHJldHVybiBtX2RhdGE7IH1cbiIpOworCiAgICAgIyBDb25zdHJ1Y3RvciBv
YmplY3QgZ2V0dGVyLgogICAgIGlmIChAeyRpbnRlcmZhY2UtPmNvbnN0YW50c30pIHsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7XG4iKTsKQEAgLTM1MTMsOSAr
MzUyMiwxMyBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9i
YWxPYmplY3QqKTtcblxuIik7CiAKICAgICAjIFByaXZhdGUgbWVtYmVycwotICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTtcbiIpOworICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgIiAuIEdldEpTQ2FsbGJhY2tEYXRhVHlwZSgkaW50ZXJmYWNl
KSAuICIqIG1fZGF0YTtcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsK
IAorICAgICMgdG9KUygpLgorICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGludGVyZmFjZU5hbWUq
KTtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJpbmxpbmUgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
ICRpbnRlcmZhY2VOYW1lJiBpbXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
JmltcGwpOyB9XG5cbiIpOworCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn0gLy8gbmFtZXNw
YWNlIFdlYkNvcmVcblxuIik7CiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5l
cmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7CiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7CkBAIC0zNTQ5LDcgKzM1NjIsNyBAQCBzdWIgR2VuZXJhdGVDYWxs
YmFja0ltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHtp
bnRlcmZhY2VOYW1lfSgpXG4iKTsKICAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
LCBBY3RpdmVET01DYWxsYmFjayhnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSlcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICwgbV9kYXRhKG5ldyBKU0NhbGxi
YWNrRGF0YShjYWxsYmFjaywgZ2xvYmFsT2JqZWN0KSlcbiIpOworICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICwgbV9kYXRhKG5ldyAiIC4gR2V0SlNDYWxsYmFja0RhdGFUeXBlKCRpbnRlcmZh
Y2UpIC4gIihjYWxsYmFjaywgdGhpcykpXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIApAQCAtMzU2NCw3ICszNTc3
LDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGVsc2VcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBj
b250ZXh0LT5wb3N0VGFzayhEZWxldGVDYWxsYmFja0RhdGFUYXNrKG1fZGF0YSkpO1xuIik7CiAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWZuZGVmIE5ERUJVR1xuIik7Ci0gICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgbV9kYXRhID0gMDtcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIG1fZGF0YSA9IG51bGxwdHI7XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRp
ZlxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCkBAIC0zNjg5LDYgKzM3
MDIsMTQgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAg
ICAgfQogCisgICAgIyB0b0pTKCkgaW1wbGVtZW50YXRpb24uCisgICAgcHVzaChAaW1wbENvbnRl
bnQsICJcbkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCAkaW50ZXJmYWNlTmFtZSogaW1wbClcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFpbXBsIHx8ICFzdGF0aWNf
Y2FzdDwke2NsYXNzTmFtZX0mPigqaW1wbCkuY2FsbGJhY2tEYXRhKCkpXG4iKTsKKyAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGpzTnVsbCgpO1xuXG4iKTsKKyAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Jj4oKmlt
cGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpO1xuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cbiIpOworCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbn1cbiIpOwogICAgIG15
ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFs
U3RyaW5nKCRpbnRlcmZhY2UpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4jZW5kaWYgLy8g
JHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCmlu
ZGV4IGM1Yjg3NzkzOTY3NTVjNGFkMDNjZWIzODM2OGMxZjIzZTk3MmNhYTYuLjYzNWQxMzMzMzY5
YTkzMGU0ZTFlZTA4NmU3NTY2YWUxODkyYTNkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQpAQCAtNDIwLDYgKzQyMCw3
IEBAIHN1YiBHZXRJbXBsQ2xhc3NOYW1lCiB7CiAgICAgbXkgJG5hbWUgPSBzaGlmdDsKIAorICAg
IHJldHVybiAiTmF0aXZlTm9kZUZpbHRlciIgaWYgJG5hbWUgZXEgIk5vZGVGaWx0ZXIiOwogICAg
IHJldHVybiAiRE9NV2luZG93IiBpZiAkbmFtZSBlcSAiQWJzdHJhY3RWaWV3IjsKICAgICByZXR1
cm4gJG5hbWU7CiB9CkBAIC02OTMsNyArNjk0LDcgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQog
ICAgIH0KIAogICAgIGlmICgkdHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKLSAgICAgICAgJGltcGxJ
bmNsdWRlc3siTm9kZUZpbHRlci5oIn0gPSAxOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJOYXRp
dmVOb2RlRmlsdGVyLmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7Ik9iakNOb2RlRmls
dGVyQ29uZGl0aW9uLmgifSA9IDE7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNTU3LDcg
KzE1NTgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIG15
ICRwYXJhbU5hbWUgPSAkbmVlZHNDdXN0b217Ik5vZGVGaWx0ZXIifTsKICAgICAgICAgICAgICAg
ICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+
IG5hdGl2ZU5vZGVGaWx0ZXI7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNv
bnRlbnQsICIgICAgaWYgKCRwYXJhbU5hbWUpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBm
dW5jdGlvbkNvbnRlbnQsICIgICAgICAgIG5hdGl2ZU5vZGVGaWx0ZXIgPSBXZWJDb3JlOjpOb2Rl
RmlsdGVyOjpjcmVhdGUoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSgk
cGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQs
ICIgICAgICAgIG5hdGl2ZU5vZGVGaWx0ZXIgPSBXZWJDb3JlOjpOYXRpdmVOb2RlRmlsdGVyOjpj
cmVhdGUoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSgkcGFyYW1OYW1l
KSk7XG4iKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVyTmFt
ZXMsICJlYyIpIGlmICRyYWlzZXNFeGNlcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggMTZiNGExOWEzOGIyM2FjZDcx
NDU2ZmUwMjFjMzU5NjJmNGUxYTA3Yy4uZTgxMmRhMzAzZDIyZmUxNWJhOWUzYjY2MDI5NTdhOTQ5
NWZlZWJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMudHh0CkBAIC03Myw2ICs3Myw3IEBAIEltcGxlbWVudGVkQXM9KgogSW5pdGlhbGl6
ZWRCeUV2ZW50Q29uc3RydWN0b3IKIEludGVyZmFjZU5hbWU9KgogSXNJbmRleAorSXNXZWFrQ2Fs
bGJhY2sKIEpTQ3VzdG9tRGVmaW5lT3duUHJvcGVydHkKIEpTQ3VzdG9tRGVmaW5lT3duUHJvcGVy
dHlPblByb3RvdHlwZQogSlNDdXN0b21GaW5hbGl6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKaW5kZXgg
NDg3MTU1ODEzNWE5OTU3YTVjZTk1N2FjZjE1OGRjYjdjODFhMjNlNS4uYTZiMGRlNzA2OTUwYTI2
M2MzMDZkZTUxM2E0ZWY1Nzg3ZjJiYWJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCkBAIC0yMzgs
NiArMjM4LDE1IEBAIGJvb2wgSlNUZXN0Q2FsbGJhY2s6OmNhbGxiYWNrUmVxdWlyZXNUaGlzVG9Q
YXNzKGludCBsb25nUGFyYW0sIFRlc3ROb2RlKiB0ZXN0Tm9kCiAgICAgcmV0dXJuICFyZXR1cm5l
ZEV4Y2VwdGlvbjsKIH0KIAorSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCosIFRlc3RDYWxsYmFjayogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwgfHwg
IXN0YXRpY19jYXN0PEpTVGVzdENhbGxiYWNrJj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKQorICAg
ICAgICByZXR1cm4ganNOdWxsKCk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNUZXN0Q2Fs
bGJhY2smPigqaW1wbCkuY2FsbGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7CisKK30KKwogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5oCmluZGV4IGEy
MmI3MGIzYjE5M2IzMjQzNDQ3YTk4ZWM0NjY0NmY5YWY5MzM0ZjAuLmNkZDczNzczMDQ0ODZjODVl
ZTE2YWUzODM2ZmEyYTVhOTZiNDQ1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5oCkBAIC00MCw2ICs0MCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB2aXJ0dWFsIH5KU1Rlc3RDYWxs
YmFjaygpOworICAgIEpTQ2FsbGJhY2tEYXRhKiBjYWxsYmFja0RhdGEoKSB7IHJldHVybiBtX2Rh
dGE7IH0KICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICAvLyBGdW5jdGlvbnMKQEAgLTU4LDYgKzU5LDkg
QEAgcHJpdmF0ZToKICAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRhOwogfTsKIAorSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDYWxsYmFj
ayopOworaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q2FsbGJhY2smIGltcGwpIHsgcmV0dXJu
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAmaW1wbCk7IH0KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2FsbGJhY2tGdW5jdGlvbi5jcHAKaW5kZXggMGM0NWMzZmQ0MmQ5Njc2NDFkMmJjZDdiYTc1YmUw
YWFjNDdjOGMwMS4uODk3YzdiZGRkNTQ3ZjQwN2UwN2VjY2Y2ZDU4ZWRkYzVlMjhhYzQ0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxiYWNrRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmNwcApAQCAtMTg5LDYgKzE4OSwxNSBAQCBi
b29sIEpTVGVzdENhbGxiYWNrRnVuY3Rpb246OmNhbGxiYWNrUmVxdWlyZXNUaGlzVG9QYXNzKGlu
dCBsb25nUGFyYW0sIFRlc3ROb2RlKgogICAgIHJldHVybiAhcmV0dXJuZWRFeGNlcHRpb247CiB9
CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
LCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwgfHwgIXN0YXRp
Y19jYXN0PEpTVGVzdENhbGxiYWNrRnVuY3Rpb24mPigqaW1wbCkuY2FsbGJhY2tEYXRhKCkpCisg
ICAgICAgIHJldHVybiBqc051bGwoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU1Rlc3RD
YWxsYmFja0Z1bmN0aW9uJj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpOworCit9
CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVu
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggM2ZlM2YyMDhkYWU1MWIyOGU2ZTljNzBkZDVkYzhlNmZi
NWVkZjU5Mi4uNDEyZTIyOTVjNzE4ZWExYzhiYzA1MjM5OGRjZjEyZmM5NmRlMTE5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxi
YWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CiAKICAgICB2aXJ0dWFsIH5KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uKCk7
CisgICAgSlNDYWxsYmFja0RhdGEqIGNhbGxiYWNrRGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfQog
CiAgICAgLy8gRnVuY3Rpb25zCiAgICAgdmlydHVhbCBib29sIGNhbGxiYWNrV2l0aE5vUGFyYW0o
KTsKQEAgLTU3LDYgKzU4LDkgQEAgcHJpdmF0ZToKICAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRh
OwogfTsKIAorSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCosIFRlc3RDYWxsYmFja0Z1bmN0aW9uKik7CitpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3RDYWxsYmFja0Z1bmN0aW9uJiBpbXBsKSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgJmltcGwpOyB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggNjc0
MmZiODhmOGEwNWM0YzU0NjJmMmU0MWE3NWVlNzE3OTJiNTc2Yy4uNTU2ODQ3MDU5NGZhZTA3MDU3
NDEyNGQ4ZWQ4ODQ0MzFlZDAxOGQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBA
IC0xMDgsNyArMTA4LDYgQEAKICNpbmNsdWRlICJOYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCIKICNp
bmNsdWRlICJOYW1lZE5vZGVNYXAuY3BwIgogI2luY2x1ZGUgIk5vZGUuY3BwIgotI2luY2x1ZGUg
Ik5vZGVGaWx0ZXIuY3BwIgogI2luY2x1ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIgogI2lu
Y2x1ZGUgIk5vZGVJdGVyYXRvci5jcHAiCiAjaW5jbHVkZSAiTm9kZU9yU3RyaW5nLmNwcCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGEzNGM5ZmY0
YjUxNTlmZjk2MjQ0ZDYyNzczMDZhNTkxYjg0ODBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0ZXIuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlTm9kZUZpbHRlci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK05hdGl2ZU5vZGVGaWx0ZXI6Ok5hdGl2ZU5vZGVG
aWx0ZXIoUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+JiYgY29uZGl0aW9uKQorICAgIDogbV9j
b25kaXRpb24oY29uZGl0aW9uKQoreyB9CisKK3VpbnQxNl90IE5hdGl2ZU5vZGVGaWx0ZXI6OmFj
Y2VwdE5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICAvLyBjYXN0IHRvIHNob3J0IHNpbGVuY2VzICJl
bnVtZXJhbCBhbmQgbm9uLWVudW1lcmFsIHR5cGVzIGluIHJldHVybiIgd2FybmluZworICAgIHJl
dHVybiBtX2NvbmRpdGlvbiA/IG1fY29uZGl0aW9uLT5hY2NlcHROb2RlKG5vZGUpIDogc3RhdGlj
X2Nhc3Q8dWludDE2X3Q+KEZJTFRFUl9BQ0NFUFQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjA3OGVh
YmM0NjAzNjUwZjM1MzRhNzdlYjJmNDgxMzMxZjI0YTk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05hdGl2ZU5vZGVGaWx0ZXIuaApAQCAtMCwwICsxLDYxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBOYXRpdmVOb2RlRmlsdGVyX2gKKyNkZWZpbmUgTmF0aXZlTm9kZUZp
bHRlcl9oCisKKyNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCisjaW5jbHVkZSAiTm9kZUZpbHRlckNv
bmRpdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5hdGl2ZU5vZGVGaWx0
ZXIgZmluYWwgOiBwdWJsaWMgTm9kZUZpbHRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxO
YXRpdmVOb2RlRmlsdGVyPiBjcmVhdGUoUmVmUHRyPE5vZGVGaWx0ZXJDb25kaXRpb24+JiYgY29u
ZGl0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF0aXZlTm9kZUZp
bHRlcihXVEY6Om1vdmUoY29uZGl0aW9uKSkpOworICAgIH0KKworICAgIHN0YXRpYyBSZWY8TmF0
aXZlTm9kZUZpbHRlcj4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5hdGl2ZU5vZGVGaWx0ZXIoKSk7CisgICAgfQorCisgICAgdmlydHVhbCB1aW50MTZfdCBh
Y2NlcHROb2RlKE5vZGUqKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2V0Q29uZGl0aW9uKFJlZlB0
cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNvbmRpdGlvbikgeyBBU1NFUlQoIW1fY29uZGl0aW9u
KTsgbV9jb25kaXRpb24gPSBjb25kaXRpb247IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBO
YXRpdmVOb2RlRmlsdGVyKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmKTsKKworICAgIE5h
dGl2ZU5vZGVGaWx0ZXIoKSB7IH0KKworICAgIFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBt
X2NvbmRpdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5h
dGl2ZU5vZGVGaWx0ZXJfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZp
bHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDhkYWJjNTQwYTcwZTc1NDhhOTk0YTI3NDFiNDAzMjMyNzdjNzFl
NGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQot
ICogQ29weXJpZ2h0IChDKSAyMDAwIEZyZWRlcmlrIEhvbGxqZW4gKGZyZWRlcmlrLmhvbGxqZW5A
aGlnLm5vKQotICogQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20p
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5pZ0BnbWFpbC5j
b20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIK
LQotI2luY2x1ZGUgIk5vZGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zaG9ydCBOb2Rl
RmlsdGVyOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgTm9kZSogbm9kZSkgY29u
c3QKLXsKLSAgICAvLyBjYXN0IHRvIHNob3J0IHNpbGVuY2VzICJlbnVtZXJhbCBhbmQgbm9uLWVu
dW1lcmFsIHR5cGVzIGluIHJldHVybiIgd2FybmluZwotICAgIHJldHVybiBtX2NvbmRpdGlvbiA/
IG1fY29uZGl0aW9uLT5hY2NlcHROb2RlKHN0YXRlLCBub2RlKSA6IHN0YXRpY19jYXN0PHNob3J0
PihGSUxURVJfQUNDRVBUKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlRmlsdGVyLmgKaW5kZXggNTdjOTU1YWY3ZDNiNjJiZWE4ZDEyNmY3ZDUwMDYzMzQwMDI1YWZm
Mi4uMDYxMTI5YWUyMDk4ZmRkZDJlZWRhNzFjNDY0NzEzZTkxOTUwMjBlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZUZpbHRlci5oCkBAIC0zLDcgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDAwIEZyZWRl
cmlrIEhvbGxqZW4gKGZyZWRlcmlrLmhvbGxqZW5AaGlnLm5vKQogICogQ29weXJpZ2h0IChDKSAy
MDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2Ft
dWVsIFdlaW5pZyAoc2FtLndlaW5pZ0BnbWFpbC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA4LCAyMDA5LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsNzAgKzI1LDUwIEBACiAjaWZuZGVmIE5vZGVG
aWx0ZXJfaAogI2RlZmluZSBOb2RlRmlsdGVyX2gKIAotI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3Js
ZC5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgTm9kZUZpbHRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5vZGVGaWx0ZXI+
IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIC8qKgotICAgICAgICAgKiBUaGUgZm9sbG93aW5nIGNv
bnN0YW50cyBhcmUgcmV0dXJuZWQgYnkgdGhlIGFjY2VwdE5vZGUoKQotICAgICAgICAgKiBtZXRo
b2Q6Ci0gICAgICAgICAqLwotICAgICAgICBlbnVtIHsKLSAgICAgICAgICAgIEZJTFRFUl9BQ0NF
UFQgPSAxLAotICAgICAgICAgICAgRklMVEVSX1JFSkVDVCA9IDIsCi0gICAgICAgICAgICBGSUxU
RVJfU0tJUCAgID0gMwotICAgICAgICB9OworY2xhc3MgTm9kZTsKIAotICAgICAgICAvKioKLSAg
ICAgICAgICogVGhlc2UgYXJlIHRoZSBhdmFpbGFibGUgdmFsdWVzIGZvciB0aGUgd2hhdFRvU2hv
dyBwYXJhbWV0ZXIuCi0gICAgICAgICAqIFRoZXkgYXJlIHRoZSBzYW1lIGFzIHRoZSBzZXQgb2Yg
cG9zc2libGUgdHlwZXMgZm9yIE5vZGUsIGFuZAotICAgICAgICAgKiB0aGVpciB2YWx1ZXMgYXJl
IGRlcml2ZWQgYnkgdXNpbmcgYSBiaXQgcG9zaXRpb24gY29ycmVzcG9uZGluZwotICAgICAgICAg
KiB0byB0aGUgdmFsdWUgb2YgTm9kZVR5cGUgZm9yIHRoZSBlcXVpdmFsZW50IG5vZGUgdHlwZS4K
LSAgICAgICAgICovCi0gICAgICAgIGVudW0gOiB1bnNpZ25lZCBsb25nIHsKLSAgICAgICAgICAg
IFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9IDB4RkZGRkZGRkYsCi0gICAgICAgICAg
ICBTSE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAxLAotICAgICAgICAg
ICAgU0hPV19BVFRSSUJVVEUgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMiwKLSAgICAgICAg
ICAgIFNIT1dfVEVYVCAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCi0gICAgICAg
ICAgICBTSE9XX0NEQVRBX1NFQ1RJT04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAotICAgICAg
ICAgICAgU0hPV19FTlRJVFlfUkVGRVJFTkNFICAgICAgICAgID0gMHgwMDAwMDAxMCwKLSAgICAg
ICAgICAgIFNIT1dfRU5USVRZICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMjAsCi0gICAg
ICAgICAgICBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gICAgPSAweDAwMDAwMDQwLAotICAg
ICAgICAgICAgU0hPV19DT01NRU5UICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDA4MCwKLSAg
ICAgICAgICAgIFNIT1dfRE9DVU1FTlQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAxMDAsCi0g
ICAgICAgICAgICBTSE9XX0RPQ1VNRU5UX1RZUEUgICAgICAgICAgICAgPSAweDAwMDAwMjAwLAot
ICAgICAgICAgICAgU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMCwK
LSAgICAgICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAgICAgICAgICA9IDB4MDAwMDA4MDAK
LSAgICAgICAgfTsKK2NsYXNzIE5vZGVGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb2RlRmls
dGVyPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Tm9kZUZpbHRlcigpIHsgfQorICAgIHZpcnR1
YWwgdWludDE2X3QgYWNjZXB0Tm9kZShOb2RlKikgPSAwOwogCi0gICAgICAgIHN0YXRpYyBSZWY8
Tm9kZUZpbHRlcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4gY29uZGl0
aW9uKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOb2RlRmls
dGVyKGNvbmRpdGlvbikpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIFJlZjxOb2RlRmls
dGVyPiBjcmVhdGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBOb2RlRmlsdGVyKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShK
U0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKLQotICAgICAgICAvLyBEbyBub3QgY2FsbCB0
aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0aGUg
T2JqZWN0aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUgbWFp
biB0aHJlYWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMuCi0g
ICAgICAgIHNob3J0IGFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QgeyByZXR1cm4gYWNjZXB0
Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbm9kZSksIG5v
ZGUpOyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldENvbmRpdGlvbihQYXNzUmVmUHRyPE5v
ZGVGaWx0ZXJDb25kaXRpb24+IGNvbmRpdGlvbikgeyBBU1NFUlQoIW1fY29uZGl0aW9uKTsgbV9j
b25kaXRpb24gPSBjb25kaXRpb247IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxpY2l0
IE5vZGVGaWx0ZXIoUGFzc1JlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBjb25kaXRpb24pIDog
bV9jb25kaXRpb24oY29uZGl0aW9uKSB7IH0KLSAgICAgICAgTm9kZUZpbHRlcigpIHt9CisgICAg
LyoKKyAgICAgKiBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyBhcmUgcmV0dXJuZWQgYnkgdGhlIGFj
Y2VwdE5vZGUoKQorICAgICAqIG1ldGhvZDoKKyAgICAgKi8KKyAgICBlbnVtIHsKKyAgICAgICAg
RklMVEVSX0FDQ0VQVCA9IDEsCisgICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAyLAorICAgICAgICBG
SUxURVJfU0tJUCAgID0gMworICAgIH07CiAKLSAgICAgICAgUmVmUHRyPE5vZGVGaWx0ZXJDb25k
aXRpb24+IG1fY29uZGl0aW9uOworICAgIC8qCisgICAgICogVGhlc2UgYXJlIHRoZSBhdmFpbGFi
bGUgdmFsdWVzIGZvciB0aGUgd2hhdFRvU2hvdyBwYXJhbWV0ZXIuCisgICAgICogVGhleSBhcmUg
dGhlIHNhbWUgYXMgdGhlIHNldCBvZiBwb3NzaWJsZSB0eXBlcyBmb3IgTm9kZSwgYW5kCisgICAg
ICogdGhlaXIgdmFsdWVzIGFyZSBkZXJpdmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNvcnJl
c3BvbmRpbmcKKyAgICAgKiB0byB0aGUgdmFsdWUgb2YgTm9kZVR5cGUgZm9yIHRoZSBlcXVpdmFs
ZW50IG5vZGUgdHlwZS4KKyAgICAgKi8KKyAgICBlbnVtIDogdW5zaWduZWQgbG9uZyB7CisgICAg
ICAgIFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9IDB4RkZGRkZGRkYsCisgICAgICAg
IFNIT1dfRUxFTUVOVCAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDEsCisgICAgICAgIFNI
T1dfQVRUUklCVVRFICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDIsCisgICAgICAgIFNIT1df
VEVYVCAgICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDQsCisgICAgICAgIFNIT1dfQ0RB
VEFfU0VDVElPTiAgICAgICAgICAgICA9IDB4MDAwMDAwMDgsCisgICAgICAgIFNIT1dfRU5USVRZ
X1JFRkVSRU5DRSAgICAgICAgICA9IDB4MDAwMDAwMTAsCisgICAgICAgIFNIT1dfRU5USVRZICAg
ICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMjAsCisgICAgICAgIFNIT1dfUFJPQ0VTU0lOR19J
TlNUUlVDVElPTiAgICA9IDB4MDAwMDAwNDAsCisgICAgICAgIFNIT1dfQ09NTUVOVCAgICAgICAg
ICAgICAgICAgICA9IDB4MDAwMDAwODAsCisgICAgICAgIFNIT1dfRE9DVU1FTlQgICAgICAgICAg
ICAgICAgICA9IDB4MDAwMDAxMDAsCisgICAgICAgIFNIT1dfRE9DVU1FTlRfVFlQRSAgICAgICAg
ICAgICA9IDB4MDAwMDAyMDAsCisgICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01FTlQgICAgICAg
ICA9IDB4MDAwMDA0MDAsCisgICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAgICAgICAgICA9
IDB4MDAwMDA4MDAKICAgICB9OworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUZpbHRlci5pZGwKaW5kZXggZGVlZTBhYjYzODIyMWNjNTA0MDlhYWY4OWUzNDYy
Zjg0YTJkYzJhYy4uN2VkMGRkMTMxMDBmMWNhMGY4MmIwOGM5ZmJkNDViNzhjNDRlYjRiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbApAQCAtMjAsMTYgKzIwLDEzIEBACiAKIC8vIEludHJv
ZHVjZWQgaW4gRE9NIExldmVsIDI6CiBbCi0gICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCi0gICAg
SlNDdXN0b21Ub05hdGl2ZU9iamVjdCwKICAgICBPYmpDUHJvdG9jb2wsCi0gICAgQ1BQUHVyZUlu
dGVyZmFjZSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgTm9k
ZUZpbHRlciB7CisgICAgSXNXZWFrQ2FsbGJhY2ssCitdIGNhbGxiYWNrIGludGVyZmFjZSBOb2Rl
RmlsdGVyIHsKICAgICAvLyBDb25zdGFudHMgcmV0dXJuZWQgYnkgYWNjZXB0Tm9kZQotICAgIGNv
bnN0IHNob3J0ICAgICAgICAgICAgICAgRklMVEVSX0FDQ0VQVCAgICAgICAgICAgICAgICAgID0g
MTsKLSAgICBjb25zdCBzaG9ydCAgICAgICAgICAgICAgIEZJTFRFUl9SRUpFQ1QgICAgICAgICAg
ICAgICAgICA9IDI7Ci0gICAgY29uc3Qgc2hvcnQgICAgICAgICAgICAgICBGSUxURVJfU0tJUCAg
ICAgICAgICAgICAgICAgICAgPSAzOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTFRFUl9B
Q0NFUFQgPSAxOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTFRFUl9SRUpFQ1QgPSAyOwor
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTFRFUl9TS0lQID0gMzsKIAogICAgIC8vIENvbnN0
YW50cyBmb3Igd2hhdFRvU2hvdwogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgU0hPV19B
TEwgICAgICAgICAgICAgICAgICAgICAgID0gMHhGRkZGRkZGRjsKQEAgLTQ2LDcgKzQzLDEwIEBA
CiAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAg
ICAgICAgPSAweDAwMDAwNDAwOwogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgU0hPV19O
T1RBVElPTiAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDgwMDsKIAotICAgIFtDYWxsV2l0aD1T
Y3JpcHRTdGF0ZV0gc2hvcnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IE5vZGUgbik7Ci0KKyNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFH
RV9PQkpFQ1RJVkVfQworICAgIHNob3J0IGFjY2VwdE5vZGUoW0RlZmF1bHQ9VW5kZWZpbmVkXSBv
cHRpb25hbCBOb2RlIG4pOworI2Vsc2UKKyAgICBbQ3VzdG9tXSB1bnNpZ25lZCBzaG9ydCBhY2Nl
cHROb2RlKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsKKyNlbmRpZgogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmluZGV4IGU0Nzhk
OTQ4YWE0NDhjMmM4ZWUyOTRkYTkyMzE5ZWYxYmZiNTdjMDEuLjcyYzllZTEyNmY4NDZjYmI3Mzhk
YTVkOTA0MGUyZDdjZjUwODI5NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
RmlsdGVyQ29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNv
bmRpdGlvbi5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
aG9ydCBOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRlKiwgTm9k
ZSopIGNvbnN0CitzaG9ydCBOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKE5vZGUqKSBj
b25zdAogewogICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggOGJhMzhmNjk5MTBkYTVhYTQy
ODJkOTVmNGMzNDJiZGZmM2YwY2NkMy4uMmI5YWI2OGZkY2MzZjJlNjdjNmU1ZTIwYjBlMTA1MjU2
MDM1Njc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJDb25kaXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oCkBAIC00
MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBOb2RlRmlsdGVyQ29u
ZGl0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Tm9kZUZpbHRlckNvbmRpdGlvbj4gewogICAgIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB+Tm9kZUZpbHRlckNvbmRpdGlvbigpIHsgfQotICAgICAg
ICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Qg
PSAwOworICAgICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0ID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0QWdncmVnYXRlKEpTQzo6U2xvdFZpc2l0b3ImKSB7
IH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IGU0MzZjNzg5
YmU3YzM4OWY5YTA5Yjk5NTM0YWJlYTQzMmJiNWY1YzIuLjhmMjlhYjAxODhhOTQ4N2Q2MmZmNTcx
MmZmMTk2MWJiMTU0ZTIwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRl
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIE5vZGVJdGVyYXRvcjo6fk5vZGVJdGVyYXRvcigpCiAgICAgcm9vdCgpLT5k
b2N1bWVudCgpLmRldGFjaE5vZGVJdGVyYXRvcih0aGlzKTsKIH0KIAotUmVmUHRyPE5vZGU+IE5v
ZGVJdGVyYXRvcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorUmVmUHRyPE5vZGU+
IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiByZXN1bHQ7CiAK
QEAgLTk4LDkgKzk4LDcgQEAgUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoSlND
OjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgRklMVEVSX1JF
SkVDVCBkb2VzIG5vdCBwYXNzIG92ZXIgZGVzY2VuZGFudHMKICAgICAgICAgLy8gb2YgdGhlIHJl
amVjdGVkIG5vZGUuIEhlbmNlLCBGSUxURVJfUkVKRUNUIGlzIHRoZSBzYW1lIGFzIEZJTFRFUl9T
S0lQLgogICAgICAgICBSZWZQdHI8Tm9kZT4gcHJvdmlzaW9uYWxSZXN1bHQgPSBtX2NhbmRpZGF0
ZU5vZGUubm9kZTsKLSAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0ZWQgPSBhY2NlcHROb2RlKHN0
YXRlLCBwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQ
VDsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUocHJv
dmlzaW9uYWxSZXN1bHQuZ2V0KCkpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CiAgICAg
ICAgIGlmIChub2RlV2FzQWNjZXB0ZWQpIHsKICAgICAgICAgICAgIG1fcmVmZXJlbmNlTm9kZSA9
IG1fY2FuZGlkYXRlTm9kZTsKICAgICAgICAgICAgIHJlc3VsdCA9IHByb3Zpc2lvbmFsUmVzdWx0
LnJlbGVhc2UoKTsKQEAgLTExMiw3ICsxMTAsNyBAQCBSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9y
OjpuZXh0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotUmVmUHRyPE5vZGU+IE5vZGVJdGVyYXRvcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSkKK1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6OnByZXZpb3VzTm9kZSgpCiB7CiAg
ICAgUmVmUHRyPE5vZGU+IHJlc3VsdDsKIApAQCAtMTIyLDkgKzEyMCw3IEBAIFJlZlB0cjxOb2Rl
PiBOb2RlSXRlcmF0b3I6OnByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAg
ICAgIC8vIEluIG90aGVyIHdvcmRzLCBGSUxURVJfUkVKRUNUIGRvZXMgbm90IHBhc3Mgb3ZlciBk
ZXNjZW5kYW50cwogICAgICAgICAvLyBvZiB0aGUgcmVqZWN0ZWQgbm9kZS4gSGVuY2UsIEZJTFRF
Ul9SRUpFQ1QgaXMgdGhlIHNhbWUgYXMgRklMVEVSX1NLSVAuCiAgICAgICAgIFJlZlB0cjxOb2Rl
PiBwcm92aXNpb25hbFJlc3VsdCA9IG1fY2FuZGlkYXRlTm9kZS5ub2RlOwotICAgICAgICBib29s
IG5vZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUoc3RhdGUsIHByb3Zpc2lvbmFsUmVzdWx0Lmdl
dCgpKSA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOwotICAgICAgICBpZiAoc3RhdGUgJiYg
c3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJvb2wg
bm9kZVdhc0FjY2VwdGVkID0gYWNjZXB0Tm9kZShwcm92aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0g
Tm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKICAgICAgICAgaWYgKG5vZGVXYXNBY2NlcHRlZCkg
ewogICAgICAgICAgICAgbV9yZWZlcmVuY2VOb2RlID0gbV9jYW5kaWRhdGVOb2RlOwogICAgICAg
ICAgICAgcmVzdWx0ID0gcHJvdmlzaW9uYWxSZXN1bHQucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVJdGVyYXRvci5oCmluZGV4IDBiOWZiZGNhMGVkNDBlYjAxNjRmMTBkYjQ2NDA2M2EzNjRmZTc5
Y2IuLjQ5NzY2YWQzMzIxNjUxOTM3NmM2ZTNhZmJlMGNlMjczMjQ0NWEzYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUl0ZXJhdG9yLmgKQEAgLTQzLDggKzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB9CiAgICAgICAgIH5Ob2RlSXRlcmF0b3IoKTsKIAotICAgICAgICBSZWZQdHI8Tm9k
ZT4gbmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgUmVmUHRyPE5vZGU+IHByZXZp
b3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSopOworICAgICAgICBSZWZQdHI8Tm9kZT4gbmV4dE5vZGUo
KTsKKyAgICAgICAgUmVmUHRyPE5vZGU+IHByZXZpb3VzTm9kZSgpOwogICAgICAgICB2b2lkIGRl
dGFjaCgpOwogCiAgICAgICAgIE5vZGUqIHJlZmVyZW5jZU5vZGUoKSBjb25zdCB7IHJldHVybiBt
X3JlZmVyZW5jZU5vZGUubm9kZS5nZXQoKTsgfQpAQCAtNTMsMTEgKzUzLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgYW55
IG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVudCB0cmVlLgogICAgICAgICB2b2lkIG5v
ZGVXaWxsQmVSZW1vdmVkKE5vZGUmKTsKIAotICAgICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBm
dW5jdGlvbnMuIFRoZXkgYXJlIGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0
aXZlLUMgYmluZGluZ3MuCi0gICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJl
YWQgbm9ybWFsIHdvcmxkLCBhbmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAg
IFJlZlB0cjxOb2RlPiBuZXh0Tm9kZSgpIHsgcmV0dXJuIG5leHROb2RlKGV4ZWNTdGF0ZUZyb21O
b2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCByZWZlcmVuY2VOb2RlKCkpKTsgfQotICAgICAg
ICBSZWZQdHI8Tm9kZT4gcHJldmlvdXNOb2RlKCkgeyByZXR1cm4gcHJldmlvdXNOb2RlKGV4ZWNT
dGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCByZWZlcmVuY2VOb2RlKCkpKTsg
fQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgTm9kZUl0ZXJhdG9yKFBhc3NSZWZQdHI8Tm9kZT4s
IHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9vbCBl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVJdGVyYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbApp
bmRleCBjMGVhNmM4OTA5ZjMwNGRlODcyMWE2NTc5MTFmMGM1NTNlZGRmOGI1Li4xMjAyNWRlNmI4
YjQ5NDczZWZkN2Y3ODQwMTFmNDFmNzYxMzA3YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUl0ZXJhdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJh
dG9yLmlkbApAQCAtMzAsOCArMzAsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJl
ZmVyZW5jZU5vZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcG9pbnRlckJlZm9y
ZVJlZmVyZW5jZU5vZGU7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgbmV4dE5v
ZGUoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcHJldmlvdXNOb2RlKCk7Cisg
ICAgTm9kZSBuZXh0Tm9kZSgpOworICAgIE5vZGUgcHJldmlvdXNOb2RlKCk7CiAgICAgdm9pZCBk
ZXRhY2goKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKaW5kZXggMWMyMjcwNWU3ZmE3
YzRhOGQ0OTEwOGFjMzg3MjEzNDNlMzhmOWQ2YS4uNzYzZjE0MWNlNzE2ZGNhY2RiNjgyN2E0ZWZi
YWFjNzNmZmE4YjQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAgTm9kZUl0ZXJhdG9yQmFzZTo6Tm9kZUl0ZXJhdG9yQmFzZShQYXNzUmVmUHRyPE5vZGU+IHJv
b3ROb2RlLCB1bnNpZ25lZCBsb25nIHdoYXQKIHsKIH0KIAotc2hvcnQgTm9kZUl0ZXJhdG9yQmFz
ZTo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpIGNvbnN0Citz
aG9ydCBOb2RlSXRlcmF0b3JCYXNlOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAg
ICAgLy8gRklYTUU6IFRvIGhhbmRsZSBYTUwgcHJvcGVybHkgd2Ugd291bGQgaGF2ZSB0byBjaGVj
ayBtX2V4cGFuZEVudGl0eVJlZmVyZW5jZXMuCiAKQEAgLTQ4LDcgKzQ4LDcgQEAgc2hvcnQgTm9k
ZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5v
ZGUpIGNvbnN0CiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUDsKICAgICBp
ZiAoIW1fZmlsdGVyKQogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsK
LSAgICByZXR1cm4gbV9maWx0ZXItPmFjY2VwdE5vZGUoc3RhdGUsIG5vZGUpOworICAgIHJldHVy
biBtX2ZpbHRlci0+YWNjZXB0Tm9kZShub2RlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyYXZlcnNhbC5oCmluZGV4IDE1ZjA5ZTJhYWNiYmIwYTM0MTcwZjg0NTEwZDQz
NWU3ODYzODc0NjUuLjZhY2ZiZGJjYTVkM2Y0ZTg1OTA1ZjI2OTFlZjFmZjZlMWYxNzRkYjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhdmVyc2FsLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBOb2RlSXRlcmF0b3JCYXNlKFBhc3NSZWZQdHI8
Tm9kZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwg
Ym9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShK
U0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZShO
b2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Tm9kZT4gbV9yb290
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCmluZGV4IGRmMDM0YjE3ZGI4ZTc3MGM1MzgwNDE0
YmY4MzQ0NTE2OGU4YTYwOWYuLjA1ODM2MjA2ZDY2NTQ3NWEzNTMxZDJiY2QwNWI5Yzc1MTYwM2Yx
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAKQEAgLTU0LDI4ICs1NCwyNCBAQCBpbmxp
bmUgTm9kZSogVHJlZVdhbGtlcjo6c2V0Q3VycmVudChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAg
ICAgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cGFyZW50
Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpwYXJlbnROb2Rl
KCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICB3aGlsZSAobm9k
ZSAhPSByb290KCkpIHsKICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAg
ICAgaWYgKCFub2RlKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2Vw
dE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYg
KHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1
bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3Vs
dCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1
cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZChKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUpCitOb2RlKiBUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKCkKIHsKICAgICBmb3IgKFJl
ZlB0cjxOb2RlPiBub2RlID0gbV9jdXJyZW50LT5maXJzdENoaWxkKCk7IG5vZGU7ICkgewotICAg
ICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQo
KSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5v
ZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3VsdCkgewogICAg
ICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAg
IG1fY3VycmVudCA9IG5vZGUucmVsZWFzZSgpOwpAQCAtOTYsMTkgKzkyLDE3IEBAIE5vZGUqIFRy
ZWVXYWxrZXI6OmZpcnN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgp
OwogICAgICAgICAgICAgaWYgKCFwYXJlbnQgfHwgcGFyZW50ID09IHJvb3QoKSB8fCBwYXJlbnQg
PT0gbV9jdXJyZW50KQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgbm9kZSA9IHBhcmVudDsKICAgICAgICAgfSB3
aGlsZSAobm9kZSk7CiAgICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwog
fQogCi1Ob2RlKiBUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQor
Tm9kZSogVHJlZVdhbGtlcjo6bGFzdENoaWxkKCkKIHsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBu
b2RlID0gbV9jdXJyZW50LT5sYXN0Q2hpbGQoKTsgbm9kZTsgKSB7Ci0gICAgICAgIHNob3J0IGFj
Y2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAg
aWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgp
KTsKICAgICAgICAgc3dpdGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICBjYXNl
IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ6CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50ID0g
bm9kZS5yZWxlYXNlKCk7CkBAIC0xMjksMjMgKzEyMywyMSBAQCBOb2RlKiBUcmVlV2Fsa2VyOjps
YXN0Q2hpbGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAg
ICAgaWYgKCFwYXJlbnQgfHwgcGFyZW50ID09IHJvb3QoKSB8fCBwYXJlbnQgPT0gbV9jdXJyZW50
KQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICAgICAgbm9kZSA9IHBhcmVudDsKICAgICAgICAgfSB3aGlsZSAobm9kZSk7
CiAgICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1Ob2RlKiBU
cmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSog
VHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9
IG1fY3VycmVudDsKICAgICBpZiAobm9kZSA9PSByb290KCkpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBmb3IgKFJl
ZlB0cjxOb2RlPiBzaWJsaW5nID0gbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7IHNpYmxpbmc7ICkg
ewotICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUs
IHNpYmxpbmcuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHNob3J0IGFj
Y2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHNpYmxpbmcuZ2V0KCkpOwogICAgICAgICAgICAg
c3dpdGNoIChhY2NlcHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgY2FzZSBOb2RlRmls
dGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBzaWJs
aW5nLnJlbGVhc2UoKTsKQEAgLTE2NCwyNSArMTU2LDIxIEBAIE5vZGUqIFRyZWVXYWxrZXI6OnBy
ZXZpb3VzU2libGluZyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgICAgIH0KICAgICAgICAg
bm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlIHx8IG5vZGUgPT0g
cm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVS
ZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRl
ICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBh
Y2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBO
b2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6Om5leHRT
aWJsaW5nKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJs
aW5nKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKICAgICBpZiAobm9k
ZSA9PSByb290KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB3aGlsZSAoMSkgewogICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBzaWJsaW5nID0gbm9k
ZS0+bmV4dFNpYmxpbmcoKTsgc2libGluZzsgKSB7Ci0gICAgICAgICAgICBzaG9ydCBhY2NlcHRO
b2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgc2libGluZy5nZXQoKSk7Ci0gICAgICAgICAg
ICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUo
c2libGluZy5nZXQoKSk7CiAgICAgICAgICAgICBzd2l0Y2ggKGFjY2VwdE5vZGVSZXN1bHQpIHsK
ICAgICAgICAgICAgICAgICBjYXNlIE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ6CiAgICAgICAg
ICAgICAgICAgICAgIG1fY3VycmVudCA9IHNpYmxpbmcucmVsZWFzZSgpOwpAQCAtMjAxLDMxICsx
ODksMjUgQEAgTm9kZSogVHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0
YXRlKQogICAgICAgICB9CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAg
ICAgIGlmICghbm9kZSB8fCBub2RlID09IHJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwot
ICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5n
ZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBz
aG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAg
aWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKLSAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQog
Ci1Ob2RlKiBUcmVlV2Fsa2VyOjpwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQor
Tm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKCkKIHsKICAgICBSZWZQdHI8Tm9kZT4gbm9k
ZSA9IG1fY3VycmVudDsKICAgICB3aGlsZSAobm9kZSAhPSByb290KCkpIHsKICAgICAgICAgd2hp
bGUgKE5vZGUqIHByZXZpb3VzU2libGluZyA9IG5vZGUtPnByZXZpb3VzU2libGluZygpKSB7CiAg
ICAgICAgICAgICBub2RlID0gcHJldmlvdXNTaWJsaW5nOwotICAgICAgICAgICAgc2hvcnQgYWNj
ZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICAg
ICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2Rl
KG5vZGUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZp
bHRlcjo6RklMVEVSX1JFSkVDVCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIHdoaWxlIChOb2RlKiBsYXN0Q2hpbGQgPSBub2RlLT5sYXN0Q2hpbGQoKSkgewogICAgICAg
ICAgICAgICAgIG5vZGUgPSBsYXN0Q2hpbGQ7Ci0gICAgICAgICAgICAgICAgYWNjZXB0Tm9kZVJl
c3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgICAgIGlm
IChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICAgICAgICAgIGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5v
ZGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVG
aWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQpAQCAtMjM1LDI5ICsyMTcsMjUgQEAgTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNO
b2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBpZiAobm9kZSA9PSByb290KCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBub2Rl
LT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghcGFyZW50KQotICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgbm9kZSA9IHBhcmVudDsK
LSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIG5vZGUu
Z2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2Nl
cHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3VsdCA9PSBOb2Rl
RmlsdGVyOjpGSUxURVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJuIHNldEN1cnJlbnQobm9k
ZS5yZWxlYXNlKCkpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAotTm9kZSogVHJlZVdhbGtlcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQor
Tm9kZSogVHJlZVdhbGtlcjo6bmV4dE5vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiBub2RlID0g
bV9jdXJyZW50OwogQ2hpbGRyZW46CiAgICAgd2hpbGUgKE5vZGUqIGZpcnN0Q2hpbGQgPSBub2Rl
LT5maXJzdENoaWxkKCkpIHsKICAgICAgICAgbm9kZSA9IGZpcnN0Q2hpbGQ7Ci0gICAgICAgIHNo
b3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAg
ICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9k
ZShub2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRl
cjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVs
ZWFzZSgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklM
VEVSX1JFSkVDVCkKQEAgLTI2NSw5ICsyNDMsNyBAQCBDaGlsZHJlbjoKICAgICB9CiAgICAgd2hp
bGUgKE5vZGUqIG5leHRTaWJsaW5nID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRy
ZW4oKm5vZGUsIHJvb3QoKSkpIHsKICAgICAgICAgbm9kZSA9IG5leHRTaWJsaW5nOwotICAgICAg
ICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7
Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2Vw
dE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVG
aWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAgICAgICAgICAgICByZXR1cm4gc2V0Q3VycmVudChub2Rl
LnJlbGVhc2UoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6
OkZJTFRFUl9TS0lQKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmgKaW5kZXggYzQ0MGMyOTZjYzY3NTM2
NTAyOWU1NDYwNzdjYTMyYjc3ZjA2NGM0ZC4uNmEzZmU3MTY4ZjA0ODVkM2VhOGZlNzQ2YmMwZTcx
NjQwYTE3YzYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCkBAIC00NSwyMyArNDUsMTMgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOb2RlKiBjdXJyZW50Tm9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldEN1cnJlbnROb2RlKFBh
c3NSZWZQdHI8Tm9kZT4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgICAgICBOb2RlKiBwYXJlbnRO
b2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIGZpcnN0Q2hpbGQoSlNDOjpFeGVj
U3RhdGUqKTsKLSAgICAgICAgTm9kZSogbGFzdENoaWxkKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAg
ICAgIE5vZGUqIHByZXZpb3VzU2libGluZyhKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2Rl
KiBuZXh0U2libGluZyhKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBwcmV2aW91c05v
ZGUoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgTm9kZSogbmV4dE5vZGUoSlNDOjpFeGVjU3Rh
dGUqKTsKLQotICAgICAgICAvLyBEbyBub3QgY2FsbCB0aGVzZSBmdW5jdGlvbnMuIFRoZXkgYXJl
IGp1c3Qgc2NhZmZvbGRpbmcgdG8gc3VwcG9ydCB0aGUgT2JqZWN0aXZlLUMgYmluZGluZ3MuCi0g
ICAgICAgIC8vIFRoZXkgb3BlcmF0ZSBpbiB0aGUgbWFpbiB0aHJlYWQgbm9ybWFsIHdvcmxkLCBh
bmQgdGhleSBzd2FsbG93IEpTIGV4Y2VwdGlvbnMuCi0gICAgICAgIE5vZGUqIHBhcmVudE5vZGUo
KSB7IHJldHVybiBwYXJlbnROb2RlKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxX
b3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQotICAgICAgICBOb2RlKiBmaXJzdENoaWxkKCkg
eyByZXR1cm4gZmlyc3RDaGlsZChleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAgICAgICAgTm9kZSogbGFzdENoaWxkKCkgeyBy
ZXR1cm4gbGFzdENoaWxkKGV4ZWNTdGF0ZUZyb21Ob2RlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgp
LCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQotICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoKSB7
IHJldHVybiBwcmV2aW91c1NpYmxpbmcoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1h
bFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5vZGUqIG5leHRTaWJsaW5n
KCkgeyByZXR1cm4gbmV4dFNpYmxpbmcoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1h
bFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5vZGUqIHByZXZpb3VzTm9k
ZSgpIHsgcmV0dXJuIHByZXZpb3VzTm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9y
bWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAgICAgICAgTm9kZSogbmV4dE5vZGUo
KSB7IHJldHVybiBuZXh0Tm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KKyAgICAgICAgTm9kZSogcGFyZW50Tm9kZSgpOwor
ICAgICAgICBOb2RlKiBmaXJzdENoaWxkKCk7CisgICAgICAgIE5vZGUqIGxhc3RDaGlsZCgpOwor
ICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAgTm9kZSogbmV4dFNpYmxp
bmcoKTsKKyAgICAgICAgTm9kZSogcHJldmlvdXNOb2RlKCk7CisgICAgICAgIE5vZGUqIG5leHRO
b2RlKCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBUcmVlV2Fsa2VyKFBhc3NSZWZQdHI8Tm9k
ZT4sIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiwgYm9v
bCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlV2Fsa2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAppbmRl
eCAyNjNhZWZhNDkwMjk1ZjQwYzBiY2I5YWRlZWUwZmU3OGQ0MGU2MmNmLi40ODA5ZWUzZDRmMWQx
ZmQ0MDg1ZTFhMTE5NzNhOGRmNDAyMGU0NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVdhbGtlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRs
CkBAIC0yOSwxMiArMjksMTIgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBh
bmRFbnRpdHlSZWZlcmVuY2VzOyAgICAgICAgCiAgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0g
YXR0cmlidXRlIE5vZGUgY3VycmVudE5vZGU7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVd
IE5vZGUgcGFyZW50Tm9kZSgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBmaXJz
dENoaWxkKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIGxhc3RDaGlsZCgpOwot
ICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBwcmV2aW91c1NpYmxpbmcoKTsKLSAgICBb
Q2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgbmV4dFNpYmxpbmcoKTsKLSAgICBbQ2FsbFdpdGg9
U2NyaXB0U3RhdGVdIE5vZGUgcHJldmlvdXNOb2RlKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0
YXRlXSBOb2RlIG5leHROb2RlKCk7CisgICAgTm9kZSBwYXJlbnROb2RlKCk7CisgICAgTm9kZSBm
aXJzdENoaWxkKCk7CisgICAgTm9kZSBsYXN0Q2hpbGQoKTsKKyAgICBOb2RlIHByZXZpb3VzU2li
bGluZygpOworICAgIE5vZGUgbmV4dFNpYmxpbmcoKTsKKyAgICBOb2RlIHByZXZpb3VzTm9kZSgp
OworICAgIE5vZGUgbmV4dE5vZGUoKTsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZDlmMWZjMjAzYTAwMWYyY2U3
ODIzMGZmYTJhYzY2NjhkYmU5ODYxLi4yODYzNTM2MzEzMjM4Zjg4MjNkOTY0YTYzM2ZmYWZhZmRi
Y2U2Njc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTUtMDgtMzAgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlRmlsdGVyIHNob3VsZCBiZSBhIGNhbGxi
YWNrIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4NDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgUmViYXNlbGluZSwgdGhlIG5ldyBleGNlcHRpb24gbWVzc2FnZSBpcyBkaWZm
ZXJlbnQgYnV0IHRoZSBleGNlcHRpb24KKyAgICAgICAgdHlwZSBpcyB0aGUgc2FtZS4KKworICAg
ICAgICAqIGZhc3QvZG9tL2NvbnN0YW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9k
b20vY29uc3RhbnRzLmh0bWw6CisgICAgICAgIFN0b3AgY2hlY2tpbmcgZm9yIGNvbnN0YW50cyBv
biBOb2RlRmlsdGVyIGluc3RhbmNlcyBhcyB0aG9zZSBhcmUgbm93CisgICAgICAgIEZ1bmN0aW9u
cyAoaW1wbGVtZW50ZWQgYnkgdGhlIEphdmFTY3JpcHQpLiBUaG9zZSBjb25zdGFudHMgYXJlIG9u
CisgICAgICAgIHdpbmRvdy5Ob2RlRmlsdGVyIHN0aWxsLiBJIHZlcmlmaWVkIHRoYXQgdGhpcyBp
cyBjb25zaXN0YW50IHdpdGgKKyAgICAgICAgRmlyZWZveC4KKworICAgICAgICAqIGZhc3QvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMuaHRtbDoKKyAgICAgICAgVXBkYXRlIHRoZSBjaGVjayB0byB2
ZXJpZnkgdGhhdCB0aGUgcHJvdG90eXBlIG9mIGEgTm9kZUZpbHRlciBpbnN0YW5jZQorICAgICAg
ICBpcyB0aGUgRnVuY3Rpb24gcHJvdG90eXBlLCBub3QgdGhlIE5vZGVGaWx0ZXIgcHJvdG90eXBl
LiBOb2RlRmlsdGVyCisgICAgICAgIHNob3VsZCBub3QgaGF2ZSBhIHByb3RvdHlwZSBhcyBpdCBp
cyBhIGNhbGxiYWNrIGludGVyZmFjZS4KKworICAgICAgICAqIGZhc3QvZG9tL25vZGUtZmlsdGVy
LWdjLmh0bWw6CisgICAgICAgIFBhc3MgbnVsbCBmb3IgdGhlIGZpbHRlciBhcmd1bWVudCBpbnN0
ZWFkIG9mIDAuIFRoZSBmdW5jdGlvbnMgZXhwZWN0CisgICAgICAgIGEgbnVsbGFibGUgTm9kZUZp
bHRlciBvYmplY3QuIFBhc3NpbmcgMCBoZXJlIHRocm93cy4KKworICAgICAgICAqIGZhc3QvZG9t
L25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUu
IHdpbmRvdy5Ob2RlRmlsdGVyIG5vIGxvbmdlciBoYXMgYSBwcm90b3R5cGUuIFRoaXMgaXMgYmVj
YXVzZQorICAgICAgICBjYWxsYmFjayBpbnRlcmZhY2VzIGFyZSBub3Qgc3VwcG9zZWQgdG8gaGF2
ZSBhIHByb3RvdHlwZSBwcm9wZXJ0eSwgYXMKKyAgICAgICAgcGVyIHRoZSBXZWIgSURMIHNwZWNp
ZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2ludGVy
ZmFjZS1wcm90b3R5cGUtb2JqZWN0CisKKyAgICAgICAgSSBhbHNvIHZlcmlmaWVkIHRoYXQgdGhp
cyBpcyBjb25zaXN0ZW50IHdpdGggRmlyZWZveC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvdzNj
L2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy9k
b20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUgVzNDIHRlc3RzLiBXZSBhcmUgbm93IHBhc3Np
bmcgYSBsb3Qgb2YgY2hlY2tzIGJlY2F1c2UgdGhleQorICAgICAgICBjaGVjayB0aGF0IFRyZWVX
YWxrZXIuZmlsdGVyIC8gTm9kZUl0ZXJhdG9yLmZpbHRlciBpcyBhIEZ1bmN0aW9uLgorCisgICAg
ICAgICogdHJhdmVyc2FsL3NpemUtemVyby1ydW4uaHRtbDoKKyAgICAgICAgRml4IHRoZSB0ZXN0
IHRvIHBhc3MgYSBudWxsIG5vZGUgZmlsdGVyIGluc3RlYWQgb2YgTm9kZUZpbHRlci5GSUxURVJf
QUNDRVBULgorICAgICAgICBUaGUgY2FsbCB3YXMgbm90IHZhbGlkIGFuZCBub3cgY29ycmVjdGx5
IHRocm93cy4gVGhlIEpTIGlzIHN1cHBvc2VkIHRvIHBhc3MKKyAgICAgICAgaW4gYSBudWxsYWJs
ZSBOb2RlRmlsdGVyLCBub3QgYSBjb25zdGFudC4gSSB0aGluayB0aGUgY29kZSBtZWFudCB0byBz
YXkKKyAgICAgICAgImZ1bmN0aW9uKCkgeyByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBU
OyB9IiwgaG93ZXZlciwgSSB1c2VkIG51bGwgYXMKKyAgICAgICAgaXQgaXMgc2hvcnRlciBhbmQg
ZXF1aXZhbGVudC4KKwogMjAxNS0wOC0zMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBVcGRhdGUgV2luZG93cyBleHBlY3RhdGlvbiBmb3IgZmFzdC9ldmVu
dHMvd2hlZWxldmVudC1iYXNpYy5odG1sIGFmdGVyIHIxODg3OTMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhw
ZWN0ZWQudHh0CmluZGV4IGNhNWRhODQxYjc4MmIzM2ZmZTkzYmYwYTQ5Y2NmODdlMjQ1ZmRkM2Iu
LmVlN2QyMWE2ZmZiNzk3NWYyZjkxMzBkNGIzYTQwYTQyNmM1YjQ0YWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0
ZXItZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAgUEFTUyB3YWxrZXIuZmlyc3RDaGls
ZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwogUEFTUyB3YWxrZXIubmV4dE5vZGUo
KTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAogVGVzdGluZyB3aXRoIG9iamVjdCBs
YWNraW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBh
biBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyB3YWxrZXIuY3VycmVudE5vZGUu
aWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1
bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKIAog
VGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlvbiBhY2NlcHROb2RlIHByb3BlcnR5
Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
ZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BB
U1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKLVBBU1Mgd2Fsa2Vy
Lm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0ZXIgb2JqZWN0
IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fsa2VyLm5leHRO
b2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHdhbGtl
ci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rpbmcgd2l0aCBmdW5jdGlvbiBoYXZp
bmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
Y29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0YW50cy1l
eHBlY3RlZC50eHQKaW5kZXggNDdmYzViMmJjODEzYmNmYTVhYzJlNzUxOTk1Zjk5MzY2Yjc3MjNi
OC4uYmZkNjU3MDU1NGEyNzk5MWQ1N2FkNTE4NjM4NjRlMjA5M2RlOTU1ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC0yNCwyMiArMjQsNiBAQCBQ
QVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0lOSEVSSVQgc2hvdWxkIGJlIDAgYW5kIGlzLgogUEFT
Uzogd2luZG93LkNTU1ZhbHVlLkNTU19QUklNSVRJVkVfVkFMVUUgc2hvdWxkIGJlIDEgYW5kIGlz
LgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNUIHNob3VsZCBiZSAyIGFuZCBp
cy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIHNob3VsZCBiZSAzIGFuZCBpcy4K
LVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91bGQgYmUgMSBhbmQgaXMuCi1QQVNT
OiBub2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9k
ZUZpbHRlci5GSUxURVJfU0tJUCBzaG91bGQgYmUgMyBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVy
LlNIT1dfQUxMIHNob3VsZCBiZSA0Mjk0OTY3Mjk1IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX1RFWFQg
c2hvdWxkIGJlIDQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0NEQVRBX1NFQ1RJT04g
c2hvdWxkIGJlIDggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0VOVElUWV9SRUZFUkVO
Q0Ugc2hvdWxkIGJlIDE2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19FTlRJVFkgc2hv
dWxkIGJlIDMyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19QUk9DRVNTSU5HX0lOU1RS
VUNUSU9OIHNob3VsZCBiZSA2NCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1dfQ09NTUVO
VCBzaG91bGQgYmUgMTI4IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCBz
aG91bGQgYmUgMjU2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9UWVBF
IHNob3VsZCBiZSA1MTIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5UX0ZS
QUdNRU5UIHNob3VsZCBiZSAxMDI0IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19OT1RB
VElPTiBzaG91bGQgYmUgMjA0OCBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuTm9kZUZpbHRlci5GSUxU
RVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5Ob2RlRmlsdGVyLkZJ
TFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgogUEFTUzogd2luZG93Lk5vZGVGaWx0ZXIu
RklMVEVSX1NLSVAgc2hvdWxkIGJlIDMgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMu
aHRtbAppbmRleCBkY2UyNTg4OTQzYWMwNThkYzJiMTljYTMwZWQ3MzAwYTc2OGYwZTAxLi4xOTVi
YmNkOWU2NTc2ZTM0ODUxZjc3YjVlNTExOWNhODE4MGZmNzg3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jb25zdGFudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9j
b25zdGFudHMuaHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhLCBiKQog
ICAgIHByaW50KG1lc3NhZ2UsIGNvbG9yKTsKIH0KIAotdmFyIGNzc1J1bGUsIGNzc1ZhbHVlLCBu
b2RlRmlsdGVyLCBldmVudDsKK3ZhciBjc3NSdWxlLCBjc3NWYWx1ZSwgZXZlbnQ7CiAKIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpAQCAtNjYsMzQgKzY2LDYg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzaG91bGRCZSgid2luZG93LkNTU1ZhbHVlLkNTU19W
QUxVRV9MSVNUIiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9N
IiwgMyk7CiAKLSAgICB2YXIgbm9kZUl0ZXJhdG9yOwotICAgIHRyeSB7Ci0gICAgICAgIG5vZGVJ
dGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7IHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQ7IH0s
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFs
c2UpOwotICAgIH0gY2F0Y2goZSkgewotICAgICAgICBub2RlSXRlcmF0b3IgPSBuZXcgT2JqZWN0
KCk7Ci0gICAgfQotICAgIAotICAgIG5vZGVGaWx0ZXIgPSBub2RlSXRlcmF0b3IuZmlsdGVyOwot
ICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQiLCAxKTsKLSAgICBzaG91bGRC
ZSgibm9kZUZpbHRlci5GSUxURVJfUkVKRUNUIiwgMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0
ZXIuRklMVEVSX1NLSVAiLCAzKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0FMTCIs
IDB4RkZGRkZGRkYpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRUxFTUVOVCIsIDB4
MDAwMDAwMDEpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFIiwgMHgw
MDAwMDAwMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19URVhUIiwgMHgwMDAwMDAw
NCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OIiwgMHgwMDAw
MDAwOCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFlfUkVGRVJFTkNFIiwg
MHgwMDAwMDAxMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFkiLCAweDAw
MDAwMDIwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdfSU5TVFJV
Q1RJT04iLCAweDAwMDAwMDQwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0NPTU1F
TlQiLCAweDAwMDAwMDgwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
IiwgMHgwMDAwMDEwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVF9U
WVBFIiwgMHgwMDAwMDIwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VF9GUkFHTUVOVCIsIDB4MDAwMDA0MDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1df
Tk9UQVRJT04iLCAweDAwMDAwODAwKTsKLQogICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9kZUZpbHRl
ci5GSUxURVJfQUNDRVBUIiwgMSk7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5Ob2RlRmlsdGVyLkZJ
TFRFUl9SRUpFQ1QiLCAyKTsKICAgICBzaG91bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIuRklMVEVS
X1NLSVAiLCAzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMu
aHRtbAppbmRleCA5N2QyZmFkYmRlOWUxOGEwZTkwOWQ4MzcyOWZjN2U1OTc4Y2VkNmNlLi4wYjM5
ZGQwNzAzMzZlMWMzODk2ZDg3MGY5OTdkZTlmODk0N2FkMDVjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy5odG1sCkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHRyeSB7CiAgICAgICBub2RlRmlsdGVyID0gZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgZnVuY3Rpb24g
KCkge30sIGZhbHNlKS5maWx0ZXI7CiAgICAgfSBjYXRjaChlKSB7fQotICAgIHNob3VsZEJlKCJ3
aW5kb3cuTm9kZUZpbHRlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVyKSIsIHRy
dWUpOworICAgIHNob3VsZEJlKCJGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihub2Rl
RmlsdGVyKSIsIHRydWUpOwogCiAgICAgb3JpZ2luYWxOb2RlUHJvdG90eXBlID0gd2luZG93Lk5v
ZGUucHJvdG90eXBlOwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9k
ZS1maWx0ZXItZ2MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWdjLmh0
bWwKaW5kZXggMDY0OWFkMjE4YmU5ZGZhYTE5NzNjZGM3NTYwNzE1ZjRiZWZmYWY4Zi4uYTIwNGM0
NGJmM2YzY2Q1ODA5YzRiMDJlYWUwYzQ0NTljMjcwNTYwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9ub2RlLWZpbHRlci1nYy5odG1sCkBAIC0zLDggKzMsOCBAQAogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIAotdmFyIGl0ZXJhdG9yID0g
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgMCwgZmFsc2UpOwotdmFyIHdhbGtlciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAwLCBmYWxzZSk7Cit2YXIgaXRlcmF0
b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsLCBmYWxzZSk7Cit2YXIgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwsIGZhbHNlKTsK
IAogLy8gY3JlYXRlIGxvdHMgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIGdhcmJhZ2UgY29sbGVjdGlv
bgogIHZhciBpID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmls
dGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZp
bHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CmluZGV4IDVlNTQ2ODZmYWEzYzdhZjM2YWRiNWIx
MTZmODI1ZGIxY2M2ZjcyYzcuLmQ0YTk4YzhlNDI1MjUwOWQyZTNiNmUwYWFkYWE3ZmI2ZWY1NmRi
Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWludGVyZmFj
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItaW50
ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMzksOCArMzksNiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBm
YWxzZSwgdmFsdWU6IDBdCiAqIG5hbWUKIFtDb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6
IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiBOb2RlRmlsdGVyXQotKiBwcm90b3R5cGUK
LVtDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IGZhbHNl
LCB2YWx1ZTogW29iamVjdCBOb2RlRmlsdGVyUHJvdG90eXBlXV0KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDgyMjI0OTI4
MGI5MWU0Yjg5ODFjODY0ZWYyMGNhODY0N2M5MjdiZTYuLjdkNDA4NzJjYzZmMTgzMjdiYWJjMTg0
YjU4OGY0NTc3ZjhhMDczY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTE4OTAsNDEgKzE4OTAsNDEgQEAg
UEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1
bWVudC5ib2R5LCBOb2RlRmlsdGVyLlMKIFBBU1MgVHJlZVdhbGtlciBpbnRlcmZhY2U6IGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRlci5TSE9XX0FMTCwg
bnVsbCwgZmFsc2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmlvdXNOb2RlIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoOSkgCiBQQVNTIFRyZWVXYWxrZXIgaW50ZXJmYWNlOiBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51bGws
IGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHROb2RlIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoMTApIAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNz
ZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3Bl
cnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAi
Y29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91bGQgbm90
IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFT
UyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0
cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJ
TFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHBy
b3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNl
OiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAog
UEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1JFSkVDVCBvbiBpbnRl
cmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVS
X1JFSkVDVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVG
aWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFs
c2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9S
RUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50
ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBO
b2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBh
ICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQUxM
IG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFu
dCBTSE9XX0FMTCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5v
ZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQg
ZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1df
QUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBh
ICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0FU
VFJJQlVURSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTog
Y29uc3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNz
ZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3Bl
cnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBj
b25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBvbiBpbnRlcmZhY2Ug
b2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19URVhUIG9u
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91
bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1
ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19URVhUIG9uIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3Rh
bnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBh
ICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24gaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBT
SE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRl
ciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBvbiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZl
IGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50
ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIg
cHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAog
UEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19QUk9DRVNTSU5HX0lOU1RS
VUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBj
b25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90
b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFu
dCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRl
cmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIg
cHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAK
IFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlQgb24gaW50
ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1df
RE9DVU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2Rl
RmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZh
bHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RP
Q1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGlu
dGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBFIG9uIGludGVyZmFjZSBvYmplY3Qg
Ci1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX1RZUEUg
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNo
b3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0
cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX1RZ
UEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIG9uIGludGVyZmFjZSBvYmplY3Qg
Ci1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdN
RU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRl
ciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVO
VF9GUkFHTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRl
ciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIG9iamVjdCAK
LUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBu
b3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1G
QUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShOb2RlKSBhc3Nl
cnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVy
dHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNv
bnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShOb2RlKSAKIEZBSUwg
RE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIERPTVRva2VuTGlzdCBl
eHBlY3RlZCAiW29iamVjdCBGdW5jdGlvbl0iIGJ1dCBnb3QgIltvYmplY3QgRE9NVG9rZW5MaXN0
Q29uc3RydWN0b3JdIgogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
CiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVh
dGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA3MmVhZDUzMjllZjkzZDE4ZmIzMjI2MjAx
ODFlYmI3Mjg3Y2FlYzJlLi4zOGVmMDA4YzA0YmEwZmIwZTBjMmJmMTU0Mzk2MTQ2YzFhMDkxMWNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vbm9kZXMvRG9jdW1l
bnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0ZWQudHh0
CkBAIC0zLDUgKzMsNSBAQCBQQVNTIFJlcXVpcmVkIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fs
a2VyIHNob3VsZCBiZSByZXF1aXJlZC4KIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRzIHRvIGNyZWF0
ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgxIHBhc3NlZCkuIAogUEFTUyBPcHRpb25h
bCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwgKDIgcGFz
c2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3Vs
ZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIG51bGwpLiAKLUZBSUwgT3B0aW9uYWwgYXJndW1lbnRz
IHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgzIHBhc3NlZCwgZnVuY3Rp
b24pLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBiZSBvcHRp
b25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVj
dGVkLnR4dAppbmRleCA0ZDU5ODZjNGY0ZjE0NWJlYmQ0ZjQ1YmIwM2VkMzAzNjEzZDZjMGVjLi44
YTU2ZDdhNDI1MmQyZGYxZWVhOWM3Mzk2ODI0MmQ5ZmEzMWVlNjRlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNhbC9Ob2Rl
SXRlcmF0b3ItZXhwZWN0ZWQudHh0CkBAIC01LDc0MyArNSw3NDMgQEAgUEFTUyBjcmVhdGVOb2Rl
SXRlcmF0b3IoKSB3aXRoIG51bGwgYXMgYXJndW1lbnRzCiBGQUlMIGNyZWF0ZU5vZGVJdGVyYXRv
cigpIHdpdGggdW5kZWZpbmVkIGFzIGFyZ3VtZW50cyBhc3NlcnRfZXF1YWxzOiB3aGF0VG9TaG93
IGV4cGVjdGVkIDQyOTQ5NjcyOTUgYnV0IGdvdCAwCiBQQVNTIFByb3BhZ2F0ZSBleGNlcHRpb24g
ZnJvbSBmaWx0ZXIgZnVuY3Rpb24gCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1swXSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGls
ZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sx
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sx
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
MCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEx
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RD
aGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVu
dCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRE
aXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRE
aXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
YywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Q
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvYywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0
aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Y29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJh
Mi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBh
cmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
dGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0
ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRl
c3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxl
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxF
bGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZG
RkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENv
bW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVu
dCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMHhG
RkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
dHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL3Ry
YXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQKaW5kZXggOWFiZWQzMGU3
NGI1YTYwNDE1NzU5ODJlYTAyMGFhOGRjNTg0NTYyNi4uNjU1Nzg0ZGI1YmIyOGI4MTEwNzIzZjlj
NTQzZGE2ZjliZWVjOTA3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
ZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0CkBAIC0x
LDc0MiArMSw3NDMgQEAKIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBd
LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RD
aGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxk
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEx
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jdW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBUZXh0
IG5vZGUgIlRyZWVXYWxrZXIgdGVzdHMiIGJ1dCBnb3QgbnVsbAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxp
bmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgIld4eXphYmNkIiBidXQgZ290IG51bGwKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5uZXh0U2li
bGluZygpIGV4cGVjdGVkIFRleHQgbm9kZSAiRWZnaGlqa2wiIGJ1dCBnb3QgQ29tbWVudCBub2Rl
IDwhLS0iQ29tbWVudGVyIiBhbmQgImNvbW1lbnRhdG9yIiBtZWFuIGRpZmZlcmVudCB0aGluZ3Mu
ICBJJ3YuLi4tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRv
YywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEy
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Q
YXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBUZXh0
IG5vZGUgImRvIHJlIG1pIGZhIHNvIGxhIHRpIiBidXQgZ290IENvbW1lbnQgbm9kZSA8IS0tSSBt
YWxpY2lvdXNseSBjcmVhdGVkIGEgY29tbWVudCB0aGF0IHdpbGwgYnJlYWsgaW5jYXV0aW91Li4u
LS0+CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Ms
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxF
bGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4
dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9u
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVj
dGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZG
RkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0
cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihj
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihj
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2Nm
cmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhG
RkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBl
LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlw
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlw
ZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sx
XSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMHhG
RkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQ
YXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENo
aWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0
RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRl
c3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgIklqa2xtbm9wCisiIGJ1
dCBnb3QgQ29tbWVudCBub2RlIDwhLS1BbHBoYWJldCBzb3VwPy0tPgogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
dGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRl
eHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRl
eHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25D
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRY
bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dHJhdmVyc2FsL3NpemUtemVyby1ydW4uaHRtbCBiL0xheW91dFRlc3RzL3RyYXZlcnNhbC9zaXpl
LXplcm8tcnVuLmh0bWwKaW5kZXggYzY3YjIyYjQ5MTUyYTRhOTZjYzQzYTRmYzQ5MDJjMjM1ZWI3
M2VkNy4uMzViNTRjNmQ0MTQ2YzJhMWFmYjA5NjljZDVhZDA5MTk0Yzc2Nzg2NyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3NpemUtemVyby1ydW4uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy90cmF2ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1sCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgdGV4dG5vZGUyLm5vZGVWYWx1ZSA9ICIiOwogICAgIAogICAgIHZh
ciByb290ID0gZG9jdW1lbnQuYm9keTsKLSAgICB2YXIgaXQgPSBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3Iocm9vdCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIE5vZGVGaWx0ZXIuRklMVEVS
X0FDQ0VQVCwgZmFsc2UpOworICAgIHZhciBpdCA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihyb290LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCwgZmFsc2UpOwogCiAgICAgdmFy
IG4gPSBpdC5uZXh0Tm9kZSgpOwogICAgIHdoaWxlKG4pIHsKQEAgLTI4LDQgKzI4LDQgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKIDxwPkEgY3Jhc2ggd291bGQgb2NjdXIgb24gaXRlcmF0aW9uIG92ZXIg
YSBub2RlIGNvbnRhaW5pbmcgc3VjaCBhIHJ1bi4gIE5vZGVJdGVyYXRvcnMsIHRoZSBpbm5lclRl
eHQgcHJvcGVydHksIGFuZCBob3ZlcmluZyBvdmVyIGEgbGluayBhbGwgdXNlIGl0ZXJhdGlvbi48
L3A+CiA8cD5UaGlzIHRlc3RzIGl0ZXJhdGlvbiB1c2luZyBib3RoIHRoZSBpbm5lclRleHQgcHJv
cGVydHkgYW5kIE5vZGVJdGVyYXRvcnMuICBJdCBpcyBzdWNjZXNzZnVsIGlmIGl0IGRvZXNuJ3Qg
Y3Jhc2ggU2FmYXJpLjwvcD4KIDxocj4KLTxhIGhyZWY9IiMiIGlkPSJub2RlIj5oZWxsbzwvYT48
L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzxhIGhyZWY9IiMiIGlk
PSJub2RlIj5oZWxsbzwvYT48L2JvZHk+PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260379</attachid>
            <date>2015-09-01 13:43:30 -0700</date>
            <delta_ts>2015-09-01 14:50:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148415-20150901134312.patch</filename>
            <type>text/plain</type>
            <size>554648</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIyNThjMjMxOTY5NGJj
NzljN2Q1MGMzM2RlYzI1YmJhZTczZjZhOC4uZTA5NjRjNTc0ZDRlYzQ0MjMyYjVhMWRkNzQ5YmU1
ODE2Y2FhZTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NSBAQAorMjAxNS0wOS0wMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGVGaWx0ZXIgc2hvdWxk
IGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBH
YXJlbi4KKworICAgICAgICBOb2RlRmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSwg
aW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLAorICAgICAgICBhcyBwZXIgdGhlIERPTSBz
cGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVy
ZmFjZS1ub2RlZmlsdGVyCisKKyAgICAgICAgT25lIG1ham9yIGRpZmZlcmVuY2UgaXMgdGhhdCBU
cmVlV2Fsa2VyLmZpbHRlciAvIE5vZGVJdGVyYXRvciBpcworICAgICAgICBzdXBwb3NlZCB0byBi
ZSBhIEZ1bmN0aW9uIC8gT2JqZWN0IChwYXNzZWQgYnkgSmF2YVNjcmlwdCksIGJ1dCBpdCB3YXMg
YQorICAgICAgICBKU05vZGVGaWx0ZXIgd3JhcHBlciBpbiBXZWJLaXQuIEFsc28sIHdpbmRvdy5O
b2RlRmlsdGVyIGlzIG5vdCBzdXBwb3NlZAorICAgICAgICB0byBoYXZlIGEgcHJvdG90eXBlIHBy
b3BlcnR5LgorCisgICAgICAgIFRoaXMgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIEZpcmVm
b3guIEhvd2V2ZXIsIENocm9tZSBzdGlsbCBoYXMgaXRzCisgICAgICAgIG93biBOb2RlRmlsdGVy
IHdyYXBwZXIuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgIGh0dHAvdGVzdHMvdzNjL2RvbS90
cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLmh0bWwgKHJlYmFzZWxpbmVkKQorICAgICAg
ICBodHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbCAocmViYXNlbGlu
ZWQpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgIEFkZCAvIFJlbW92ZSBmaWxlcyB0byB0aGUgcHJvamVjdCBmaWxlcy4KKwor
ICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlRmls
dGVyQ29uZGl0aW9uLmg6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbjo6YWNjZXB0Tm9kZSk6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0
Tm9kZUZpbHRlckNvbmRpdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvT2JqQ05vZGVG
aWx0ZXJDb25kaXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVy
Q29uZGl0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246
OmFjY2VwdE5vZGUpOgorICAgICAgICBEcm9wIEV4ZWNTdGF0ZSBwYXJhbWV0ZXIgYXMgaXQgaXMg
bm90IHVzZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgVXNlIE5hdGl2ZU5vZGVG
aWx0ZXIgdHlwZSBpbnN0ZWFkIG9mIE5vZGVGaWx0ZXIuIE5vZGVGaWx0ZXIgaXMgbm93CisgICAg
ICAgIGEgcHVyZSBpbnRlcmZhY2Ugd2l0aCAyIHN1YmNsYXNzZXM6IE5hdGl2ZU5vZGVGaWx0ZXIg
Zm9yIHRoZSBuYXRpdmUKKyAgICAgICAgYmluZGluZ3MgYW5kIEpTTm9kZUZpbHRlciBmb3IgdGhl
IEpTIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcDoKKyAgICAgICAgRHJvcCBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGFzIGl0IHdhcyBy
ZW1vdmVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKToKKyAgICAgICAg
VGhyb3cgYSBUeXBlRXJyb3IgaWYgdGhlIGNhbGxiYWNrIG9iamVjdCBiZWluZyBpbnZva2VkIGlz
IG5vdCBjYWxsYWJsZQorICAgICAgICBhbmQgZG9lcyBub3QgaGF2ZSBhIGNhbGxhYmxlIHByb3Bl
cnR5IHdpdGggdGhlIGV4cGVjdGVkIG5hbWUuIFRoZXJlCisgICAgICAgIGFyZSBzZXZlcmFsIGxh
eW91dCB0ZXN0cyBjb3ZlcmluZyB0aGlzIChpbmNsdWRpbmcgdzNjIG9uZXMpLiBQcmV2aW91c2x5
LAorICAgICAgICBOb2RlRmlsdGVyIHdhcyBub3QgdXNpbmcgdGhlIGdlbmVyaWMgSlNDYWxsYmFj
a0RhdGEgYW5kIHRoZSBleGNlcHRpb24KKyAgICAgICAgdGhyb3dpbmcgd2FzIGluIEpTTm9kZUZp
bHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZSgpIGluc3RlYWQuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICBEcm9wIHRo
aXMgY2xhc3MuIEpTTm9kZUZpbHRlciAvIEpTTm9kZUZpbHRlckN1c3RvbSBub3cgYmFzaWNhbGx5
IHRha2UKKyAgICAgICAgY2FyZSBvZiBhbGwgdGhpcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTm9kZUZpbHRlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXI6
OmFjY2VwdE5vZGUpOgorICAgICAgICBDb21wbGV0ZSByZXdyaXRlLiBUaGlzIGZpbGUgaXMgbm93
IG9ubHkgdXNlZCB0byBwcm92aWRlIGEgY3VzdG9tCisgICAgICAgIGltcGxlbWVudGF0aW9uIGZv
ciBKU05vZGVGaWx0ZXI6OmFjY2VwdE5vZGUoKS4gVGhlIGNvZGUgaXMgc2ltaWxhciB0bworICAg
ICAgICB3aGF0IHdhcyBwcmV2aW91c2x5IGRvbmUgaW4gSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjph
Y2NlcHROb2RlKCkuCisgICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIHJlYXNvbnMgd2UgbmVlZCBj
dXN0b20gYmluZGluZ3MgaGVyZToKKyAgICAgICAgLSBUaGUgYmluZGluZ3MgZ2VuZXJhdG9yIGRv
ZXMgbm90IGhhbmRsZSB5ZXQgY2FsbGJhY2sgZnVuY3Rpb25zCisgICAgICAgICAgcmV0dXJuaW5n
IGFueXRoaW5nIGVsc2UgdGhhbiBhIGJvb2xlYW4uCisgICAgICAgIC0gVGhlIHNwZWNpZmljYXRp
b24gY2xlYXJseSBzdGF0ZXMgdGhhdCB3ZSBuZWVkIHRvIHJldGhyb3cgZXhjZXB0aW9ucworICAg
ICAgICAgIHRocm93biBieSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uIEhvd2V2ZXIsIHRoZSBkZWZh
dWx0IGJlaGF2aW9yIG9mCisgICAgICAgICAgb3VyIGJpbmRpbmdzIGlzIHRvIHNpbXBseSByZXBv
cnQgdGhlIGV4Y2VwdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG06CisgICAgICAgIE9ubHkgc2tpcCBmdW5jdGlvbnMgdGhhdCBoYXZlIHBh
cmFtZXRlcnMgdGhhdCBhcmUgY2FsbGJhY2sgKmZ1bmN0aW9ucyosCisgICAgICAgIG5vdCBjYWxs
YmFjayAqaW50ZXJmYWNlcyouIENhbGxiYWNrIGludGVyZmFjZXMgYXJlIHZlcnkgc2ltaWxhciB0
bworICAgICAgICBpbnRlcmZhY2VzIGFuZCB0aGUgZ2VuZXJhdG9yIGlzIGFibGUgdG8gaGFuZGxl
IHRoZW0uIFRoaXMgY2hhbmdlIHdhcworICAgICAgICBuZWVkZWQgZm9yIHRoZSBHVEsgYmluZGlu
Z3MgZ2VuZXJhdG9yIHdvdWxkIG5vIGxvbmdlciBnZW5lcmF0ZSBiaW5kaW5ncworICAgICAgICBm
b3IgRG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKCkgLyBEb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKCksIG5vdworICAgICAgICB0aGF0IE5vZGVGaWx0ZXIgaXMgYSBjYWxsYmFjayBpbnRlcmZh
Y2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNlLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyKToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IEdlbmVyYXRlIGEgdG9KUygpIGZ1bmN0aW9uIGZvciBjYWxsYmFjayBpbnRlcmZhY2VzIGFzIHdl
bGwuIFByZXZpb3VzbHksCisgICAgICAgIHdlIHdvdWxkIG9ubHkgZ2VuZXJhdGUgdGhvc2UgZm9y
IHJlZ3VsYXIgaW50ZXJmYWNlcy4gVGhpcyBpcyBuZWVkZWQKKyAgICAgICAgYmVjYXVzZSBOb2Rl
RmlsdGVyIGlzIG5vdyBhIGNhbGxiYWNrIGludGVyZmFjZSBhbmQgaXQgaXMgZXhwb3NlZCB0bwor
ICAgICAgICBKUyB2aWEgTm9kZUl0ZXJhdG9yLmZpbHRlciAvIFRyZWVXYWxrZXIuZmlsdGVyLiBU
aGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbWVyZWx5IHJldHVybnMgdGhlIGNhbGxiYWNrIG9i
amVjdCAvIGZ1bmN0aW9uIGluc2lkZSB0aGUgSlNDYWxiYWNrRGF0YQorICAgICAgICBzbyB0aGUg
SlMgZ2V0cyBiYWNrIHRoZSBvYmplY3QgLyBmdW5jdGlvbiBpdCBwYXNzZWQgaW4uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICBUd2Vh
ayB0aGUgT2JqQyBiaW5kaW5ncyBnZW5lcmF0b3IgdG8gdXNlIE5hdGl2ZU5vZGVGaWx0ZXIgY2xh
c3MgaW5zdGVhZAorICAgICAgICBvZiBOb2RlRmlsdGVyIGFzIE5vZGVGaWx0ZXIgaXMgbm93IGEg
cHVyZSBpbnRlcmZhY2VzLiBOYXRpdmUgYmluZGluZ3MKKyAgICAgICAgYXJlIG5vdyBleHBlY3Rl
ZCB0byB1c2UgdGhlIE5hdGl2ZU5vZGVGaWx0ZXIgc3ViY2xhc3MgaW5zdGVhZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmg6
CisgICAgICAgIFJlYmFzZWxpbmUgYmluZGluZ3MgdGVzdHMgbm93IHRoYXQgd2UgZ2VuZXJhdGUg
dG9KUygpIGZ1bmN0aW9ucyBmb3IKKyAgICAgICAgY2FsbGJhY2sgZnVuY3Rpb25zIC8gaW50ZXJm
YWNlcy4KKworICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgIERyb3AgTm9k
ZUZpbHRlci5jcHAgYXMgaXQgd2FzIHJlbW92ZWQuCisKKyAgICAgICAgKiBkb20vTmF0aXZlTm9k
ZUZpbHRlci5jcHA6IEFkZGVkLgorICAgICAgICAqIGRvbS9OYXRpdmVOb2RlRmlsdGVyLmg6IEFk
ZGVkLgorICAgICAgICBJbnRyb2R1Y2UgbmV3IE5hdGl2ZU5vZGVGaWx0ZXIgY2xhc3Mgd2hpY2gg
c3ViY2xhc3NlcyB0aGUgTm9kZUZpbHRlcgorICAgICAgICBpbnRlcmZhY2UgYW5kIGlzIHVzZWQg
YnkgbmF0aXZlIGJpbmRpbmdzLiBJdHMgYWNjZXB0KCkgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
dXNlcyBOb2RlRmlsdGVyQ29uZGl0aW9uIG9iamVjdCBpbnRlcm5hbGx5IHRvIGZpbHRlciB0aGUg
bm9kZXMgaW5zdGVhZAorICAgICAgICBvZiBhIEpTIGNhbGxiYWNrLgorCisgICAgICAgICogZG9t
L05vZGVGaWx0ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9Ob2RlRmlsdGVyLmg6Cisg
ICAgICAgIE1ha2UgTm9kZUZpbHRlciBhIHB1cmUgaW50ZXJmYWNlLiBJdHMgcHJldmlvdXMgY29k
ZSBpcyBub3cgZWl0aGVyIGluCisgICAgICAgIE5hdGl2ZU5vZGVGaWx0ZXIgb2YgSlNOb2RlRmls
dGVyLgorCisgICAgICAgICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICBNYWtlIE5vZGVG
aWx0ZXIgYSBjYWxsYmFjayBpbnRlcmZhY2UgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgaW50ZXJmYWNl
LAorICAgICAgICBhcyBwZXIgdGhlIERPTSBzcGVjaWZpY2F0aW9uLiBBbHNvIGhhdmUgaXRzIGFj
Y2VwdCgpIG9wZXJhdGlvbiByZXR1cm4KKyAgICAgICAgYW4gdW5zaWduZWQgc2hvcnQgaW5zdGVh
ZCBvZiBhIHNob3J0IHRvIG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uLgorICAgICAgICBUaGUgT2Jq
QyB2ZXJzaW9uIHN0aWxsIHJldHVybnMgYSBzaG9ydCB0aG91Z2ggZm9yIGJhY2t3YXJkCisgICAg
ICAgIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oOgorCisgICAgICAgICogZG9tL05v
ZGVJdGVyYXRvci5jcHA6CisgICAgICAgICogZG9tL05vZGVJdGVyYXRvci5oOgorICAgICAgICAq
IGRvbS9Ob2RlSXRlcmF0b3IuaWRsOgorICAgICAgICAqIGRvbS9UcmF2ZXJzYWwuY3BwOgorICAg
ICAgICAqIGRvbS9UcmF2ZXJzYWwuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5jcHA6Cisg
ICAgICAgICogZG9tL1RyZWVXYWxrZXIuaDoKKyAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6
CisgICAgICAgIFN0b3AgcGFzc2luZyBFeGVjU3RhdGUgdG8gVHJlZVdhbGtlciAvIE5vZGVJdGVy
YXRvciBmdW5jdGlvbnMuIEl0IG5vCisgICAgICAgIGxvbmdlciBzZWVtcyB0byBiZSBuZWVkZWQg
YXMgd2Ugbm93IHVzZSB0aGUgSlNDYWxsYmFja0RhdGEgYWJzdHJhY3Rpb24KKyAgICAgICAgZm9y
IGludm9raW5nIEpTLgorCiAyMDE1LTA5LTAxICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHRpZ2h0ZW4gdXAgbGlmZXRpbWVzIGZvciBJbnNw
ZWN0b3JDb250cm9sbGVyLW93bmVkIG9iamVjdHM7IGFkZCBicmFjZSBpbml0aWFsaXplcnMgdG8g
YWdlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ3NDUwMzg1N2Y1ZWY0MmY2OWZiNDM1NTg0
YjZmYjBmNjI1YTcwMWIuLjNhYmIxZWM4MTI0ODg4NzI1NjEwYTlmZDA4OTMwNTFkZjExOWViOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTYwLDcgKzExNjAsNiBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2Rl
SXRlcmF0b3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNOb2RlT3JTdHJpbmcuY3BwCkBA
IC0xNDM1LDggKzE0MzQsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL05hbWVOb2Rl
TGlzdC5jcHAKICAgICBkb20vTmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKICAgICBkb20vTmFtZWRO
b2RlTWFwLmNwcAorICAgIGRvbS9OYXRpdmVOb2RlRmlsdGVyLmNwcAogICAgIGRvbS9Ob2RlLmNw
cAotICAgIGRvbS9Ob2RlRmlsdGVyLmNwcAogICAgIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNw
cAogICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCiAgICAgZG9tL05vZGVPclN0cmluZy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDQz
Nzk4NjA3MDk0YTM2NDdjNGM2YmUzZWE1MWI0ZDkyNTQwNGRhMjQuLjA2NmMzYWVlZTU2NDYzZmIz
MTM1ZjE5Njk3YjViM2RjOTdhMmFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ1NDMsMjAgKzE0NTQzLDYgQEAKICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENv
bXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21cTm9kZUZpbHRlci5jcHAiPgot
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXE5vZGVGaWx0ZXJDb25k
aXRpb24uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
QEAgLTE4NDUxLDIwICsxODQzNyw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCI+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENv
bXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0
ZXJDdXN0b20uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTIyNDY3LDcgKzIyNDM5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJp
bmRpbmdzXGpzXEpTTXV0YXRpb25DYWxsYmFjay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVPclN0cmluZy5oIiAvPgotICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkVsZW1lbnRGdW5jdGlv
bnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5n
c1xqc1xTY2hlZHVsZWRBY3Rpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBhMjNjZDYyZGVjNjBk
MjAyMzlkZDlhNTIwYmY0ZGZjMDA3NGZkZjRkLi5kZDliMmRhZjFhZGZkZDhhODdmNDFjMzA1ODUz
ZjNkY2Y1ZTZhMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC00NDAxLDkgKzQ0MDEsNiBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmNwcCI+CiAgICAg
ICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVGaWx0ZXJDb25kaXRpb24uY3Bw
Ij4KLSAgICAgIDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3Rv
bS5jcHAiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtMTE0ODksOSArMTE0ODYsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiPgogICAgICAgPEZpbHRlcj5iaW5kaW5nc1xqczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmlu
ZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiPgotICAgICAgPEZpbHRlcj5iaW5kaW5n
c1xqczwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiPgogICAgICAgPEZpbHRl
cj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk1ODFhZTA5NTJj
NzgxN2I3OTUxZTUxNWFhMmE4NDA3ZTI0ZmRlZTQuLmI2NzU3MWIzNTZhYzM5ZGIxZTFmYmM2NGJj
NDdmOGExZjI2NDg5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTI2ODQsNiArMjY4NCw3IEBACiAJCTgzMDAzMEY1MUI3RDMz
QjUwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwMDMwRjMxQjdEMzNBNjAwRUQz
QUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgKi87IH07CiAJCTgzMDAzMEY2
MUI3RDMzQjUwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDAzMEY0MUI3RDMzQTYw
MEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODMwMDMw
RjgxQjdEM0I3ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzAwMzBGNzFCN0QzOTg4MDBFRDNB
QUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKKwkJODMwNkVGRjExQjhCQ0VBNTAw
MzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODMwNkVGRjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5hdGl2ZU5v
ZGVGaWx0ZXIuY3BwICovOyB9OwogCQk4MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNl
LmggKi87IH07CiAJCTgzMkI4NDM2MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVu
dEJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODMyQjg0MzUxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgKi87
IH07CiAJCTgzNDhCRkFCMUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0OEJGQTkxQjg1
NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi87IH07CkBAIC0yNjk3LDYgKzI2
OTgsNyBAQAogCQk4Mzg2QTk3MDE5RjYxRTRGMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzODZBOTZFMTlG
NjFFNEYwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuY3BwICovOyB9OwogCQk4MzlBQUZFQzFBMEMw
QzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUExQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxX
QlJFbGVtZW50LmNwcCAqLzsgfTsKIAkJODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxX
QlJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsgfTsKKwkJ
ODNCMkQxNzUxQjhCQ0Q2QTAwQTAyRTQ3IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTk1OUUxMUI4QkMyMkIwMDRE
OTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi87IH07CiAJCTgzQjk2ODdCMTlGOEFCODMwMDRF
RjdBRiAvKiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQjk2ODc5MTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1
aWxkZXJDb252ZXJ0ZXIuaCAqLzsgfTsKIAkJODNDMDVBNUExQTY4NjIxMjAwN0U1REVBIC8qIFN0
eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMDVBNTgxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxl
UHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICovOyB9OwogCQk4M0MwNUE1QjFBNjg2MjEy
MDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMDVBNTkxQTY4NjIxMjAwN0U1
REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCAqLzsgfTsKQEAgLTI3MTgs
NiArMjcyMCw3IEBACiAJCTgzQzFENDM0MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWxSZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzQzFENDIyMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWxSZWwuaCAqLzsgfTsKIAkJODNDMUQ0MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdN
b3ZldG9BYnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzQzFENDIzMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmggKi87IH07
CiAJCTgzQzFENDM2MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvUmVsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyNDE3OEQ1
QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oICovOyB9OworCQk4M0YxMjA2QjFC
OEMxMDQ3MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2MyAv
KiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovOyB9OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFG
OEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0
cmVhbS5oICovOyB9OwogCQk4NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxk
ZXIuY3BwICovOyB9OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVy
LmggKi87IH07CkBAIC0yOTA5LDcgKzI5MTIsNiBAQAogCQk4NTQyQTc5ODBBRTVDOTQzMDBERjU4
REYgLyogSlNTVkdOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU3NEQxRjMwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHTnVtYmVyLmNwcCAq
LzsgfTsKIAkJODU0MkE3OTkwQUU1Qzk0NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTc0RDFGMjBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAq
LzsgfTsKIAkJODU0MkE3OUEwQUU1Qzk0NDAwREY1OERGIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1NzREMUYxMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5j
cHAgKi87IH07Ci0JCTg1NEZFNzMwMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI2MEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCAqLzsgfTsKIAkJODU0RkU3MzEwQTIyOTdC
RTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI3MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmgg
Ki87IH07CiAJCTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZF
NzI4MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsgfTsKIAkJ
ODU0RkU3MzMwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI5MEEyMjk3QkUw
MDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi87IH07CkBAIC01NDg3LDkgKzU0ODks
NiBAQAogCQlCQ0IxNkMyODA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZDMEYw
OTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLzsgfTsKIAkJQkNCMTZD
MjkwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjE2QzEwMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgKi87IH07CiAJCUJDQjE2QzJBMDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJQkNCNzczNjEwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNv
bmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAq
LzsgfTsKLQkJQkNCNzczNjIwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNzcz
NUYwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oICovOyB9OwotCQlC
Q0I3NzM2MzBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzYwMEMxNzg1M0Qw
MDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovOyB9OwogCQlCQ0I5MkQ0RjEyOTM1
NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I5MkQ0RTEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2Vs
aW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkNCQjhBQjkxM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAg
LyogUE9ESW50ZXJ2YWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQ0JCOEFCQTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JCOEFCNjEz
RjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMDQ5LDYgKzEwMDQ4LDcgQEAKIAkJODMw
MDMwRjMxQjdEMzNBNjAwRUQzQUFDIC8qIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW5lcmljQ2FjaGVkSFRNTENv
bGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAwMzBGNDFCN0Qz
M0E2MDBFRDNBQUMgLyogR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzAwMzBGNzFCN0QzOTg4MDBFRDNBQUMgLyogQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMwNkVG
RjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF0aXZlTm9kZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRl
RWxlbWVudEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0
ZUVsZW1lbnRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMkI4NDM1MTlE
OEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM0OEJGQTkxQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNz
Q29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGFz
c0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwODYsNiAr
MTAwODYsOCBAQAogCQk4M0MxRDQyNDE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0
b1JlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTW92ZXRv
UmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDI2RDNDMUFGRENDNTAwMDFC
Mzg3MyAvKiBDaGlsZE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENoaWxkTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzRDI2RDNEMUFGRENDNTAwMDFCMzg3MyAvKiBQYXJlbnROb2RlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBQYXJlbnROb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNF
OTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlTm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4M0YxMjA2QTFCOEMxMDM2MDBENzVGNjMgLyogSlNOb2RlRmlsdGVyQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRl
ckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE0MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NDE5RDJBNTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE2MTIw
RDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDI2MSw3ICsxMDI2Myw2IEBACiAJCTg1NDA3NTY2MEFE
NkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODU0MDc1NjcwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25F
bGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhU
TUxPcHRpb25FbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2
ODBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTRGRTcyNjBBMjI5N0JFMDA1OEQ3
QUQgLyogTm9kZUZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTm9kZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NEZFNzI3
MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOb2RlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
NEZFNzI4MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU0RkU3MjkwQTIyOTdCRTAwNThEN0FEIC8q
IE5vZGVGaWx0ZXJDb25kaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5vZGVGaWx0ZXJDb25kaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEz
MDkwLDkgKzEzMDkxLDYgQEAKIAkJQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhT
TFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFhT
TFN0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMTZDMTAwOTc5
QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklk
ZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKIAkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQ0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0I3NzM1RjBDMTc4NTNEMDAx
MzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU05vZGVGaWx0ZXJDb25kaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkNCNzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCOTJENEUxMjkzNTUwQjAw
QzgzODdGIC8qIEZvbnRCYXNlbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGb250QmFzZWxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCQjhBQjUx
M0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBPREludGVydmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
QkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUE9ESW50ZXJ2YWxUcmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMTM4Miw2ICsyMTM4MCw3IEBACiAJCQkJQkNCRkI1M0EwRENEMjlDRjAw
MTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuY3BwICovLAogCQkJCUJDQkZCNTNCMERDRDI5Q0Yw
MDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi8sCiAJCQkJNjVFMEU5NDMxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oICovLAorCQkJCTgzRjEyMDZBMUI4QzEwMzYwMEQ3NUY2
MyAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovLAogCQkJCTdDOTFBMzhEMUI0OThBQkUwMDNG
OUVGQSAvKiBKU05vZGVPclN0cmluZy5jcHAgKi8sCiAJCQkJN0M5MUEzOEUxQjQ5OEFCRTAwM0Y5
RUZBIC8qIEpTTm9kZU9yU3RyaW5nLmggKi8sCiAJCQkJRjNENDYxNDYxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTRXJyb3JIYW5kbGVyLmNwcCAqLywKQEAgLTIxNTY1LDcgKzIxNTY0LDYgQEAKIAkJCQkw
NzM3OTRFNzE5RUUzMzVDMDBFNUEwNDUgLyogSlNOYXZpZ2F0b3JDdXN0b20uY3BwICovLAogCQkJ
CUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwICovLAogCQkJCUJD
OTQzOUMyMTE2Q0Y0OTQwMDQ4Qzc1MCAvKiBKU05vZGVDdXN0b20uaCAqLywKLQkJCQlCQ0I3NzM2
MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLywKIAkJCQkxQTc1
MEREMzBBOTBFNzI5MDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwICovLAogCQkJ
CUJDRDlDMjYxMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVMaXN0Q3VzdG9tLmNwcCAqLywKIAkJ
CQlBRDIwQjE4QzE4RTlEMjE2MDA1QTgwODMgLyogSlNOb2RlTGlzdEN1c3RvbS5oICovLApAQCAt
MjE4ODQsOCArMjE4ODIsNiBAQAogCQkJCTkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2
ZW50TGlzdGVuZXIuaCAqLywKIAkJCQk5MzVGNDU0MDBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5
RXZlbnRMaXN0ZW5lci5jcHAgKi8sCiAJCQkJOTM1RjQ1NDEwRjdDM0I1RjAwRDdDMUZCIC8qIEpT
TGF6eUV2ZW50TGlzdGVuZXIuaCAqLywKLQkJCQlCQ0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyog
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLywKLQkJCQlCQ0I3NzM1RjBDMTc4NTNEMDAxMzJC
QTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDYWxs
YmFjayBPYmplY3RzIjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMzM5NiwxMCAr
MjMzOTIsMTEgQEAKIAkJCQk4NUFDQTlGOTBBOUI2MzEwMDA2NzFFOTAgLyogTmFtZWROb2RlTWFw
LmlkbCAqLywKIAkJCQlBODE4NzIxOTA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmNw
cCAqLywKIAkJCQlBODE4NzIxMzA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmggKi8s
CisJCQkJODMwNkVGRjAxQjhCQ0U3QzAwMzFEMDMyIC8qIE5hdGl2ZU5vZGVGaWx0ZXIuY3BwICov
LAorCQkJCTgzRTk1OUUxMUI4QkMyMkIwMDREOTM4NSAvKiBOYXRpdmVOb2RlRmlsdGVyLmggKi8s
CiAJCQkJQThDNEE3RUUwOUQ1NjMyNzAwMDNBQzhEIC8qIE5vZGUuY3BwICovLAogCQkJCTE0MTE1
QjUxMDlGODRCNzEwMENBNEZDMSAvKiBOb2RlLmggKi8sCiAJCQkJMTREQzBEMEIwOUZFQ0ZBNDAw
N0IwMjM1IC8qIE5vZGUuaWRsICovLAotCQkJCTg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBO
b2RlRmlsdGVyLmNwcCAqLywKIAkJCQk4NTRGRTcyNzBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZp
bHRlci5oICovLAogCQkJCTE0MTE1QUY5MDlGODQ3RDYwMENBNEZDMSAvKiBOb2RlRmlsdGVyLmlk
bCAqLywKIAkJCQk4NTRGRTcyODBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlv
bi5jcHAgKi8sCkBAIC0yNDc1OCw2ICsyNDc1NSw3IEBACiAJCQkJODUzQkY0REIwQUJCNkI1NTAw
ODY0N0JCIC8qIERPTU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NDA3NTI2MEFENkM2Njcw
MDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUI0OThGQjBB
REIzNDAyMDA5MjVDQkIgLyogRE9NTm9kZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyogTmF0aXZlTm9kZUZpbHRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODU1MjZDMzcwQUIwQTE3RTAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODUwQjQxQzIwQUQ5RTdFNzAwQTZFRDRGIC8qIERPTU5vZGVJdGVy
YXRvckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUFDQUE4RDBBOUI3NTlDMDA2NzFF
OTAgLyogRE9NTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2NDAsNyArMjU2MzgsNiBA
QAogCQkJCTA3M0JFMzREMTdEMTdFN0EwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYVN1
Y2Nlc3NDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDM5QzMxMTZDRjQ5NDAwNDhD
NzUwIC8qIEpTTm9kZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMTVCNzMwOUY4NENE
NjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNCNzczNjIw
QzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE3NTBEOEUwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0Q5QzJDMzBDMTdCNjlFMDA1QzkwQTIgLyogSlNOb2RlTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUQyMEIxOEQxOEU5RDIzNzAwNUE4MDgzIC8qIEpTTm9kZUxpc3RD
dXN0b20uaCBpbiBIZWFkZXJzICovLApAQCAtMjg4ODksNiArMjg4ODYsNyBAQAogCQkJCUJDMkVE
NkJDMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkRBMTVFOUQxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkRGN0U5QzMxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxs
YmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4M0YxMjA2QjFCOEMxMDQ3MDBENzVGNjMgLyog
SlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RTlGMTJCMDNF
RTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGREVBQUFGMzEyQjAyRUU0MDBEQ0YzM0IgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVFQTUxMkIwM0VFMTAwM0E1ODNBIC8q
IEpTQXVkaW9Db250ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjkxNjYsNiArMjkxNjQsNyBA
QAogCQkJCTUxMUVGMkQxMTdGMEZERjEwMEU0RkExNiAvKiBKU0lEQk9iamVjdFN0b3JlQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUVGMkM4MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lE
Qk9wZW5EQlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRUYyQzkxN0YwRkQzNTAw
RTRGQTE2IC8qIEpTSURCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MzA2RUZGMTFC
OEJDRUE1MDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTFFRjJDQTE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTFFRjJDQjE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJWZXJzaW9uQ2hh
bmdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2QzQ5RjMwRDdEQkEwNTAwRkZBNTU4
IC8qIEpTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5MjMxLDggKzI5
MjMwLDYgQEAKIAkJCQkxNERDMEQzNzA5RkVEMDczMDA3QjAyMzUgLyogSlNOb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDRDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQxMTVCNzIwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9k
ZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0I3NzM2MTBDMTc4NTNEMDAxMzJCQTQg
LyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQjc3MzYz
MEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE3NTBEOEQwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBNzUwREQ0MEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRv
ckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q5QzJDMjBDMTdCNjlFMDA1QzkwQTIg
LyogSlNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5NzY4LDcgKzI5NzY1LDYgQEAK
IAkJCQkyNjc3MjYwMDFBNUIzQUQ5MDAzQzI0REQgLyogTkZBVG9ERkEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNFRjQzRTAwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QzRBODAwMDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTg1NEZFNzMwMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2Rl
RmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzM0MEEyMjk3QkUw
MDU4RDdBRCAvKiBOb2RlSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEZGQzAyMkIx
NjQzQjcxMDAwNEUxNjM4IC8qIE5vZGVSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVGaWx0ZXJD
b25kaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9k
ZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5kZXggYWRmZDhjMTg5OGYzNzU1ZDRmNTk3MmQ5MjI3YWRj
YjU5N2QxZDdhZi4uZTBhYmI3YzY0ZTFmMDY0MTc5ZTAwOWI1ZmQ5ZDMxN2NmN2FhOTQ4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2Jq
ZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKQEAgLTI5LDcgKzI5LDcgQEAgR09iamVjdE5vZGVG
aWx0ZXJDb25kaXRpb246On5HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbigpCiAgICAgZ19vYmpl
Y3Rfc2V0X2RhdGEoR19PQkpFQ1QobV9maWx0ZXIuZ2V0KCkpLCAid2Via2l0LWNvcmUtbm9kZS1m
aWx0ZXIiLCBudWxscHRyKTsKIH0KIAotc2hvcnQgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb246
OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKiBub2RlKSBjb25zdAorc2hvcnQgR09i
amVjdE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkgY29uc3QKIHsK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNU
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2JqZWN0Tm9k
ZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HT2Jq
ZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDYxMjgwMjVmZmM4N2NhYTNkMTIxNjZiM2E5
Zjg4OGI1ZWFlMDk5OGMuLjUzNjZhNTM4YzU0MWE5MzkxOGI5OTFiY2I3N2ZkYzhjMjgyZTc0NDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR09iamVjdE5vZGVG
aWx0ZXJDb25kaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dP
YmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbihmaWx0
ZXIpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3Rh
dGUqLCBOb2RlKikgY29uc3Q7CisgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKE5vZGUqKSBj
b25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlv
bihXZWJLaXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcAppbmRleCAyNThmYzRh
ZDhmOWRiZDNkMDY2NGE0M2MzZDBmNDk3YzQwZjhiNWRiLi5kODBmZTcwMmYxNDUxNzEwODE1ZjI3
NTE2YmEyZjQxODEyMGRmMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
b2JqZWN0L1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2dvYmplY3QvV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNp
bmNsdWRlICJXZWJLaXRET01Ob2RlRmlsdGVyLmgiCiAKICNpbmNsdWRlICJHT2JqZWN0Tm9kZUZp
bHRlckNvbmRpdGlvbi5oIgotI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKKyNpbmNsdWRlICJOYXRp
dmVOb2RlRmlsdGVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZS5oIgogI2luY2x1ZGUgIldl
YktpdERPTU5vZGVGaWx0ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAg
LTcyLDcgKzcyLDcgQEAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNvcmUoV2ViS2l0RE9N
Tm9kZUZpbHRlciogbm9kZUZpbHRlcikKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlRmlsdGVy
PiBjb3JlTm9kZUZpbHRlciA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGVGaWx0ZXIqPihnX29i
amVjdF9nZXRfZGF0YShHX09CSkVDVChub2RlRmlsdGVyKSwgIndlYmtpdC1jb3JlLW5vZGUtZmls
dGVyIikpOwogICAgIGlmICghY29yZU5vZGVGaWx0ZXIpIHsKLSAgICAgICAgY29yZU5vZGVGaWx0
ZXIgPSBXZWJDb3JlOjpOb2RlRmlsdGVyOjpjcmVhdGUoV2ViQ29yZTo6R09iamVjdE5vZGVGaWx0
ZXJDb25kaXRpb246OmNyZWF0ZShub2RlRmlsdGVyKSk7CisgICAgICAgIGNvcmVOb2RlRmlsdGVy
ID0gV2ViQ29yZTo6TmF0aXZlTm9kZUZpbHRlcjo6Y3JlYXRlKFdlYkNvcmU6OkdPYmplY3ROb2Rl
RmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUobm9kZUZpbHRlcikpOwogICAgICAgICBub2RlRmlsdGVy
TWFwKCkuYWRkKGNvcmVOb2RlRmlsdGVyLmdldCgpLCBub2RlRmlsdGVyKTsKICAgICAgICAgZ19v
YmplY3Rfd2Vha19yZWYoR19PQkpFQ1Qobm9kZUZpbHRlciksIG5vZGVGaWx0ZXJPYmplY3REZXN0
cm95ZWRDYWxsYmFjaywgY29yZU5vZGVGaWx0ZXIuZ2V0KCkpOwogICAgICAgICBnX29iamVjdF9z
ZXRfZGF0YShHX09CSkVDVChub2RlRmlsdGVyKSwgIndlYmtpdC1jb3JlLW5vZGUtZmlsdGVyIiwg
Y29yZU5vZGVGaWx0ZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMWI1ZTk1YjJjN2I0ZTU1MWJhYmMyOTc5MTBi
NDliYTczYjJlYWEzYS4uYjVjNWZmMmU1NjAwNWY3Y2YzNjAzNzQ0OGQ1OWE2ZWViM2JhNWQwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUu
Y3BwCkBAIC0xMTQsNyArMTE0LDYgQEAKICNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U05vZGVDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAiCiAj
aW5jbHVkZSAiSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU05vZGVJdGVyYXRv
ckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOb2RlTGlzdEN1c3RvbS5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKaW5kZXggZDk4ZTYzMjZjYjNl
NDkzODhiNTIzNjdlNGY2Mjk0MDdjOGM3YTYxMy4uNmQ0MGE0N2Y3MTFhYjQ1OWJmZjUxMTEzNjFi
ZjBkNjc0NjM5NzlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
YWxsYmFja0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJh
Y2tEYXRhLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIw
MDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA3LTIwMDksIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw1MSArMzMsNDcgQEAKICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNs
dWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDxy
dW50aW1lL0V4Y2VwdGlvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogICAgIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi12b2lkIEpTQ2FsbGJhY2tEYXRhOjpkZWxldGVEYXRhKHZvaWQqIGNv
bnRleHQpCitKU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjppbnZva2VDYWxsYmFjayhKU09iamVjdCog
Y2FsbGJhY2ssIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzLCBDYWxsYmFja1R5cGUgbWV0aG9k
LCBQcm9wZXJ0eU5hbWUgZnVuY3Rpb25OYW1lLCBOYWtlZFB0cjxFeGNlcHRpb24+JiByZXR1cm5l
ZEV4Y2VwdGlvbikKIHsKLSAgICBkZWxldGUgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja0RhdGEqPihj
b250ZXh0KTsKLX0KLQotSlNWYWx1ZSBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2soTWFy
a2VkQXJndW1lbnRCdWZmZXImIGFyZ3MsIENhbGxiYWNrVHlwZSBtZXRob2QsIFByb3BlcnR5TmFt
ZSBmdW5jdGlvbk5hbWUsIE5ha2VkUHRyPEV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uKQot
ewotICAgIEFTU0VSVChjYWxsYmFjaygpKTsKLSAgICByZXR1cm4gaW52b2tlQ2FsbGJhY2soY2Fs
bGJhY2soKSwgYXJncywgbWV0aG9kLCBmdW5jdGlvbk5hbWUsIHJldHVybmVkRXhjZXB0aW9uKTsK
LX0KKyAgICBBU1NFUlQoY2FsbGJhY2spOwogCi1KU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjppbnZv
a2VDYWxsYmFjayhKU1ZhbHVlIHRoaXNWYWx1ZSwgTWFya2VkQXJndW1lbnRCdWZmZXImIGFyZ3Ms
IENhbGxiYWNrVHlwZSBtZXRob2QsIFByb3BlcnR5TmFtZSBmdW5jdGlvbk5hbWUsIE5ha2VkUHRy
PEV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uKQotewotICAgIEFTU0VSVChjYWxsYmFjaygp
KTsKLSAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KCkpOworICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9
IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY2FsbGJhY2stPmdsb2JhbE9iamVjdCgp
KTsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KTsKIAotICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFs
T2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgSlNWYWx1ZSBmdW5jdGlvbjsKICAgICBDYWxsRGF0
YSBjYWxsRGF0YTsKICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IENhbGxUeXBlTm9uZTsKIAogICAg
IGlmIChtZXRob2QgIT0gQ2FsbGJhY2tUeXBlOjpPYmplY3QpIHsKLSAgICAgICAgZnVuY3Rpb24g
PSBjYWxsYmFjaygpOwotICAgICAgICBjYWxsVHlwZSA9IGNhbGxiYWNrKCktPm1ldGhvZFRhYmxl
KCktPmdldENhbGxEYXRhKGNhbGxiYWNrKCksIGNhbGxEYXRhKTsKKyAgICAgICAgZnVuY3Rpb24g
PSBjYWxsYmFjazsKKyAgICAgICAgY2FsbFR5cGUgPSBjYWxsYmFjay0+bWV0aG9kVGFibGUoKS0+
Z2V0Q2FsbERhdGEoY2FsbGJhY2ssIGNhbGxEYXRhKTsKICAgICB9CiAgICAgaWYgKGNhbGxUeXBl
ID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICBpZiAobWV0aG9kID09IENhbGxiYWNrVHlwZTo6
RnVuY3Rpb24pCisgICAgICAgIGlmIChtZXRob2QgPT0gQ2FsbGJhY2tUeXBlOjpGdW5jdGlvbikg
eworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBFeGNlcHRpb246OmNyZWF0ZShleGVj
LT52bSgpLCBjcmVhdGVUeXBlRXJyb3IoZXhlYykpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWUoKTsKKyAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghZnVuY3Rpb25OYW1lLmlzTnVsbCgp
KTsKLSAgICAgICAgZnVuY3Rpb24gPSBjYWxsYmFjaygpLT5nZXQoZXhlYywgZnVuY3Rpb25OYW1l
KTsKKyAgICAgICAgZnVuY3Rpb24gPSBjYWxsYmFjay0+Z2V0KGV4ZWMsIGZ1bmN0aW9uTmFtZSk7
CiAgICAgICAgIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKLSAg
ICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkKKyAgICAgICAgaWYgKGNhbGxUeXBl
ID09IENhbGxUeXBlTm9uZSkgeworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBFeGNl
cHRpb246OmNyZWF0ZShleGVjLT52bSgpLCBjcmVhdGVUeXBlRXJyb3IoZXhlYykpOwogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIEFTU0VSVCgh
ZnVuY3Rpb24uaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoY2FsbFR5cGUgIT0gQ2FsbFR5cGVOb25l
KTsKIAotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBnbG9iYWxPYmplY3Qo
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQgPSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICAv
LyBXZSB3aWxsIGZhaWwgdG8gZ2V0IHRoZSBjb250ZXh0IGlmIHRoZSBmcmFtZSBoYXMgYmVlbiBk
ZXRhY2hlZC4KICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CkBA
IC04NiwxMiArODIsMTcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2so
SlNWYWx1ZSB0aGlzVmFsdWUsIE1hcmtlZEFyZ3VtZW50QnVmZmVyJgogCiAgICAgcmV0dXJuZWRF
eGNlcHRpb24gPSBudWxscHRyOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gY29udGV4dC0+aXNEb2N1
bWVudCgpCi0gICAgICAgID8gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGZ1bmN0
aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJncywgcmV0dXJuZWRFeGNlcHRp
b24pCi0gICAgICAgIDogSlNDOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERh
dGEsIHRoaXNWYWx1ZSwgYXJncywgcmV0dXJuZWRFeGNlcHRpb24pOworICAgICAgICA/IEpTTWFp
blRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCBjYWxsYmFjaywgYXJncywgcmV0dXJuZWRFeGNlcHRpb24pCisgICAgICAgIDogSlNDOjpjYWxs
KGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGNhbGxiYWNrLCBhcmdzLCByZXR1
cm5lZEV4Y2VwdGlvbik7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxG
dW5jdGlvbihjb29raWUsIGNvbnRleHQpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9v
bCBKU0NhbGxiYWNrRGF0YVdlYWs6OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCit7CisgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KGNvbnRl
eHQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDYWxsYmFja0RhdGEuaAppbmRleCA0ZWQwODA3N2UxMTRjZWUzMTI4ZmNkZTIzYjQ1
ZDhkNjVlNGEzNWQ2Li43YWNmOTIxZjQ4ZTM1YmMwZjgwYTU3MTdiNWRlMjVkNWI4MzgxOGEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5LCAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDUsMTMgKzQ1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlND
YWxsYmFja0RhdGEgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIGRlbGV0ZURhdGEodm9pZCop
OworICAgIGVudW0gY2xhc3MgQ2FsbGJhY2tUeXBlIHsgRnVuY3Rpb24sIE9iamVjdCwgRnVuY3Rp
b25Pck9iamVjdCB9OwogCi0gICAgSlNDYWxsYmFja0RhdGEoSlNDOjpKU09iamVjdCogY2FsbGJh
Y2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgICAgIDogbV9jYWxsYmFj
ayhnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxiYWNrKQotICAgICAgICAsIG1fZ2xvYmFsT2JqZWN0
KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0KQorcHJvdGVjdGVkOgorICAgIEpTQ2Fs
bGJhY2tEYXRhKCkKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgICwgbV90aHJlYWQoY3VycmVudFRo
cmVhZCgpKQorICAgICAgICA6IG1fdGhyZWFkKGN1cnJlbnRUaHJlYWQoKSkKICNlbmRpZgogICAg
IHsKICAgICB9CkBAIC02MiwyNSArNjEsNjEgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQobV90
aHJlYWQgPT0gY3VycmVudFRocmVhZCgpKTsKICNlbmRpZgogICAgIH0KLQotICAgIEpTQzo6SlNP
YmplY3QqIGNhbGxiYWNrKCkgeyByZXR1cm4gbV9jYWxsYmFjay5nZXQoKTsgfQotICAgIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBtX2dsb2JhbE9iamVjdC5nZXQo
KTsgfQogICAgIAotICAgIGVudW0gY2xhc3MgQ2FsbGJhY2tUeXBlIHsgRnVuY3Rpb24sIE9iamVj
dCwgRnVuY3Rpb25Pck9iamVjdCB9OwotICAgIEpTQzo6SlNWYWx1ZSBpbnZva2VDYWxsYmFjayhK
U0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyJiwgQ2FsbGJhY2tUeXBlLCBKU0M6OlByb3BlcnR5TmFt
ZSBmdW5jdGlvbk5hbWUsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRp
b24pOwotICAgIEpTQzo6SlNWYWx1ZSBpbnZva2VDYWxsYmFjayhKU0M6OkpTVmFsdWUgdGhpc1Zh
bHVlLCBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyJiwgQ2FsbGJhY2tUeXBlLCBKU0M6OlByb3Bl
cnR5TmFtZSBmdW5jdGlvbk5hbWUsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRF
eGNlcHRpb24pOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgaW52b2tlQ2FsbGJhY2soSlNDOjpK
U09iamVjdCogY2FsbGJhY2ssIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXImLCBDYWxsYmFja1R5
cGUsIEpTQzo6UHJvcGVydHlOYW1lIGZ1bmN0aW9uTmFtZSwgTmFrZWRQdHI8SlNDOjpFeGNlcHRp
b24+JiByZXR1cm5lZEV4Y2VwdGlvbik7CiAKIHByaXZhdGU6Ci0gICAgSlNDOjpTdHJvbmc8SlND
OjpKU09iamVjdD4gbV9jYWxsYmFjazsKLSAgICBKU0M6OlN0cm9uZzxKU0RPTUdsb2JhbE9iamVj
dD4gbV9nbG9iYWxPYmplY3Q7CiAjaWZuZGVmIE5ERUJVRwogICAgIFRocmVhZElkZW50aWZpZXIg
bV90aHJlYWQ7CiAjZW5kaWYKIH07CiAKK2NsYXNzIEpTQ2FsbGJhY2tEYXRhU3Ryb25nIDogcHVi
bGljIEpTQ2FsbGJhY2tEYXRhIHsKK3B1YmxpYzoKKyAgICBKU0NhbGxiYWNrRGF0YVN0cm9uZyhK
U0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgdm9pZCopCisgICAgICAgIDogbV9jYWxsYmFjayhjYWxs
YmFjay0+Z2xvYmFsT2JqZWN0KCktPnZtKCksIGNhbGxiYWNrKQorICAgIHsKKyAgICB9CisKKyAg
ICBKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJhY2suZ2V0KCk7IH0K
KyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gSlNDOjpqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihtX2NhbGxiYWNrLT5nbG9iYWxPYmplY3QoKSk7IH0KKwor
ICAgIEpTQzo6SlNWYWx1ZSBpbnZva2VDYWxsYmFjayhKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVy
JiBhcmdzLCBDYWxsYmFja1R5cGUgY2FsbGJhY2tUeXBlLCBKU0M6OlByb3BlcnR5TmFtZSBmdW5j
dGlvbk5hbWUsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24pCisg
ICAgeworICAgICAgICByZXR1cm4gSlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKGNhbGxi
YWNrKCksIGFyZ3MsIGNhbGxiYWNrVHlwZSwgZnVuY3Rpb25OYW1lLCByZXR1cm5lZEV4Y2VwdGlv
bik7CisgICAgfQorCitwcml2YXRlOgorICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+IG1f
Y2FsbGJhY2s7Cit9OworCitjbGFzcyBKU0NhbGxiYWNrRGF0YVdlYWsgOiBwdWJsaWMgSlNDYWxs
YmFja0RhdGEgeworcHVibGljOgorICAgIEpTQ2FsbGJhY2tEYXRhV2VhayhKU0M6OkpTT2JqZWN0
KiBjYWxsYmFjaywgdm9pZCogb3duZXIpCisgICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaywg
Jm1fd2Vha093bmVyLCBvd25lcikKKyAgICB7CisgICAgfQorCisgICAgSlNDOjpKU09iamVjdCog
Y2FsbGJhY2soKSB7IHJldHVybiBtX2NhbGxiYWNrLmdldCgpOyB9CisgICAgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4obV9jYWxsYmFjay0+Z2xvYmFsT2JqZWN0KCkpOyB9CisKKyAgICBKU0M6OkpTVmFsdWUg
aW52b2tlQ2FsbGJhY2soSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncywgQ2FsbGJhY2tU
eXBlIGNhbGxiYWNrVHlwZSwgSlNDOjpQcm9wZXJ0eU5hbWUgZnVuY3Rpb25OYW1lLCBOYWtlZFB0
cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIEpTQ2FsbGJhY2tEYXRhOjppbnZva2VDYWxsYmFjayhjYWxsYmFjaygpLCBhcmdzLCBjYWxs
YmFja1R5cGUsIGZ1bmN0aW9uTmFtZSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBjbGFzcyBXZWFrT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIg
eworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOwor
ICAgIH07CisgICAgV2Vha093bmVyIG1fd2Vha093bmVyOworICAgIEpTQzo6V2VhazxKU0M6OkpT
T2JqZWN0PiBtX2NhbGxiYWNrOworfTsKKwogY2xhc3MgRGVsZXRlQ2FsbGJhY2tEYXRhVGFzayA6
IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKIHB1YmxpYzoKLSAgICBEZWxl
dGVDYWxsYmFja0RhdGFUYXNrKEpTQ2FsbGJhY2tEYXRhKiBkYXRhKQorICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBDYWxsYmFja0RhdGFUeXBlPgorICAgIGV4cGxpY2l0IERlbGV0ZUNhbGxiYWNrRGF0
YVRhc2soQ2FsbGJhY2tEYXRhVHlwZSogZGF0YSkKICAgICAgICAgOiBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s6OkNsZWFudXBUYXNrLCBb
ZGF0YV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CiAgICAgICAgICAgICBkZWxldGUgZGF0
YTsKICAgICAgICAgfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjQx
MTlhNWE1ZDBiNzI4OWYzZTEzNjhkOTEwZDc2YTc5OGQ4Yjc3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0v
KgotICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICog
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCi0KLSNpbmNsdWRlICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJKU05vZGUuaCIKLSNpbmNsdWRlICJKU05v
ZGVGaWx0ZXIuaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmgiCi0jaW5jbHVkZSA8cnVudGltZS9F
cnJvci5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjpKU05v
ZGVGaWx0ZXJDb25kaXRpb24oVk0mLCBOb2RlRmlsdGVyKiBvd25lciwgSlNWYWx1ZSBmaWx0ZXIp
Ci0gICAgOiBtX2ZpbHRlcihmaWx0ZXIuaXNPYmplY3QoKSA/IFdlYWs8SlNPYmplY3Q+KGpzQ2Fz
dDxKU09iamVjdCo+KGZpbHRlciksICZtX3dlYWtPd25lciwgb3duZXIpIDogbnVsbHB0cikKLXsK
LX0KLQotc2hvcnQgSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBOb2RlKiBmaWx0ZXJOb2RlKSBjb25zdAotewotICAgIEpTTG9ja0hvbGRlciBs
b2NrKGV4ZWMpOwotCi0gICAgaWYgKCFtX2ZpbHRlcikKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0
ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0KLSAgICAvLyBFeGVjIGlzIG51bGwgaWYgd2UndmUgYmVlbiBj
YWxsZWQgZnJvbSBhIG5vbi1KYXZhU2NyaXB0IGxhbmd1YWdlIGFuZCB0aGUgZG9jdW1lbnQKLSAg
ICAvLyBpcyBubyBsb25nZXIgYWJsZSB0byBydW4gSmF2YVNjcmlwdCAoZS5nLiwgaXQncyBkaXNj
b25uZWN0ZWQgZnJvbSBpdHMgZnJhbWUpLgotICAgIGlmICghZXhlYykKLSAgICAgICAgcmV0dXJu
IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0KLSAgICBKU1ZhbHVlIGZpbHRlciA9IG1fZmls
dGVyLmdldCgpOwotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBl
ID0gZ2V0Q2FsbERhdGEoZmlsdGVyLCBjYWxsRGF0YSk7Ci0gICAgaWYgKGNhbGxUeXBlID09IENh
bGxUeXBlTm9uZSkgewotICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIuZ2V0KGV4ZWMsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoZXhlYywgImFjY2VwdE5vZGUiKSk7Ci0gICAgICAgIGNhbGxUeXBlID0g
Z2V0Q2FsbERhdGEoZmlsdGVyLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlmIChjYWxsVHlwZSA9PSBD
YWxsVHlwZU5vbmUpIHsKLSAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhl
YywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb2RlRmlsdGVyIG9iamVjdCBkb2VzIG5vdCBoYXZl
IGFuIGFjY2VwdE5vZGUgZnVuY3Rpb24iKSk7Ci0gICAgICAgICAgICByZXR1cm4gTm9kZUZpbHRl
cjo6RklMVEVSX1JFSkVDVDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIE1hcmtlZEFyZ3VtZW50
QnVmZmVyIGFyZ3M7Ci0gICAgLy8gRklYTUU6IFRoZSBub2RlIHNob3VsZCBoYXZlIHRoZSBwcm90
b3R5cGUgY2hhaW4gdGhhdCBjYW1lIGZyb20gaXRzIGRvY3VtZW50LCBub3QKLSAgICAvLyB3aGF0
ZXZlciBwcm90b3R5cGUgY2hhaW4gbWlnaHQgYmUgb24gdGhlIHdpbmRvdyB0aGlzIGZpbHRlciBj
YW1lIGZyb20uIEJ1ZyAyNzY2MgotICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZGVwcmVjYXRl
ZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSwgZmlsdGVyTm9kZSkpOwotICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9S
RUpFQ1Q7Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTQzo6Y2FsbChleGVjLCBmaWx0ZXIsIGNh
bGxUeXBlLCBjYWxsRGF0YSwgbV9maWx0ZXIuZ2V0KCksIGFyZ3MpOwotICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7
Ci0KLSAgICBpbnQgaW50UmVzdWx0ID0gcmVzdWx0LnRvSW50MzIoZXhlYyk7Ci0gICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX1JF
SkVDVDsKLQotICAgIHJldHVybiBpbnRSZXN1bHQ7Ci19Ci0KLWJvb2wgSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uOjpXZWFrT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewot
ICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChjb250ZXh0KTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVGaWx0ZXJDb25kaXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZh
MWJlMzE3ODk5YTVkMTFhZjczMjJlMDkyNmY2NDIxMTY4MDNjMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVGaWx0ZXJDb25kaXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCi0gKiAg
Q29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYgSlNOb2RlRmls
dGVyQ29uZGl0aW9uX2gKLSNkZWZpbmUgSlNOb2RlRmlsdGVyQ29uZGl0aW9uX2gKLQotI2luY2x1
ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKLSNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KLSNpbmNs
dWRlIDxoZWFwL1dlYWtJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+
Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgTm9kZTsKLSAgICBjbGFz
cyBOb2RlRmlsdGVyOwotCi0gICAgY2xhc3MgSlNOb2RlRmlsdGVyQ29uZGl0aW9uIDogcHVibGlj
IE5vZGVGaWx0ZXJDb25kaXRpb24gewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxK
U05vZGVGaWx0ZXJDb25kaXRpb24+IGNyZWF0ZShKU0M6OlZNJiB2bSwgTm9kZUZpbHRlciogb3du
ZXIsIEpTQzo6SlNWYWx1ZSBmaWx0ZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEpTTm9kZUZpbHRlckNvbmRpdGlvbih2bSwgb3duZXIsIGZpbHRlcikpOwot
ICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBKU05vZGVGaWx0ZXJDb25kaXRpb24o
SlNDOjpWTSYsIE5vZGVGaWx0ZXIqIG93bmVyLCBKU0M6OkpTVmFsdWUgZmlsdGVyKTsKLQotICAg
ICAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29u
c3Q7Ci0KLSAgICAgICAgY2xhc3MgV2Vha093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93
bmVyIHsKLSAgICAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJik7Ci0gICAgICAgIH07Ci0gICAgICAgIFdlYWtPd25lciBtX3dlYWtPd25lcjsKLSAgICAg
ICAgbXV0YWJsZSBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9maWx0ZXI7Ci0gICAgfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNOb2RlRmlsdGVyQ29uZGl0aW9u
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20u
Y3BwCmluZGV4IDcwNTMzZGIxNjQ5MGYzMDM1Mjg4YjBlMzE2MTA1ZWUzZTdmNjQ4MDAuLjU4OTky
MjQ1ZDc3YWFlOTMyYWVlYmJiMGRiOGUwMjQyYmJiODJiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsNDEgKzEw
LDU4IEBACiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTm9kZUZpbHRl
ci5oIgogCi0jaW5jbHVkZSAiSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisjaW5jbHVkZSAiSlND
YWxsYmFja0RhdGEuaCIKKyNpbmNsdWRlICJKU05vZGUuaCIKKyNpbmNsdWRlICJOb2RlRmlsdGVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU05vZGVGaWx0ZXI6OnZpc2l0QWRk
aXRpb25hbENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRv
ci5hZGRPcGFxdWVSb290KCZpbXBsKCkpOwotfQordXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotUmVm
UHRyPE5vZGVGaWx0ZXI+IEpTTm9kZUZpbHRlcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6
OkpTVmFsdWUgdmFsdWUpCisvLyBGSVhNRTogVGhlIGJpbmRpbmdzIGdlbmVyYXRvciBpcyBjdXJy
ZW50bHkgbm90IGFibGUgdG8gZ2VuZXJhdGUKKy8vIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxzIGlm
IHRoZXkgcmV0dXJuIHNvbWV0aGluZyBvdGhlciB0aGFuIGEKKy8vIGJvb2xlYW4uCit1aW50MTZf
dCBKU05vZGVGaWx0ZXI6OmFjY2VwdE5vZGUoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAodmFsdWUu
aW5oZXJpdHMoSlNOb2RlRmlsdGVyOjppbmZvKCkpKQotICAgICAgICByZXR1cm4gJkpTQzo6anND
YXN0PEpTTm9kZUZpbHRlcio+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsKKyAgICBSZWY8SlNO
b2RlRmlsdGVyPiBwcm90ZWN0KCp0aGlzKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKG1fZGF0
YS0+Z2xvYmFsT2JqZWN0KCktPnZtKCkpOworCisgICAgRXhlY1N0YXRlKiBleGVjID0gbV9kYXRh
LT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3M7CisgICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBtX2RhdGEtPmdsb2JhbE9iamVjdCgp
LCBub2RlKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4g
Tm9kZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKKworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gcmV0
dXJuZWRFeGNlcHRpb247CisgICAgSlNWYWx1ZSB2YWx1ZSA9IG1fZGF0YS0+aW52b2tlQ2FsbGJh
Y2soYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6RnVuY3Rpb25Pck9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAiYWNjZXB0Tm9kZSIpLCByZXR1cm5lZEV4Y2Vw
dGlvbik7CisgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgIC8vIFJldGhyb3cg
ZXhjZXB0aW9uLgorICAgICAgICBleGVjLT52bSgpLnNldEV4Y2VwdGlvbihyZXR1cm5lZEV4Y2Vw
dGlvbik7CisKKyAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CisgICAg
fQogCi0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB1aW50MTZfdCByZXN1bHQgPSB0b1VJbnQxNihleGVjLCB2YWx1ZSwgTm9ybWFsQ29udmVy
c2lvbik7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gTm9k
ZUZpbHRlcjo6RklMVEVSX1JFSkVDVDsKIAotICAgIFJlZlB0cjxOb2RlRmlsdGVyPiByZXN1bHQg
PSBOb2RlRmlsdGVyOjpjcmVhdGUoKTsKLSAgICByZXN1bHQtPnNldENvbmRpdGlvbihKU05vZGVG
aWx0ZXJDb25kaXRpb246OmNyZWF0ZSh2bSwgcmVzdWx0LmdldCgpLCB2YWx1ZSkpOwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaAppbmRleCAzYmUxNTYzNmE1YThkZmEzYjU3MWNj
YTg0MWJkMmQzMDVhZWRlNjI5Li42YzM3NzYxYjEzZTY3OWFiMGM2YjFkZGVmZDA2NzdjZGM5OGFj
Zjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmls
dGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9k
ZUZpbHRlckNvbmRpdGlvbi5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9u
KGZpbHRlcikpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2Rl
KEpTQzo6RXhlY1N0YXRlKiwgTm9kZSopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIHNob3J0IGFj
Y2VwdE5vZGUoTm9kZSopIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgT2JqQ05vZGVG
aWx0ZXJDb25kaXRpb24oaWQgPERPTU5vZGVGaWx0ZXI+IGZpbHRlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLm1tCmlu
ZGV4IDI0YjUxOTJmZjQxMzAwNTM2YTE1YTA2MGYxOTI1ZmFjNTdhMTMzYzIuLjk4NGExYWFhNWY5
NTVkZDEzZWMyNDI0NTcxNTI3OWFiOWJjNTZmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbQpAQCAtMzcsNyAr
MzcsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXNo
b3J0IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEV4ZWNTdGF0ZSosIE5vZGUq
IG5vZGUpIGNvbnN0CitzaG9ydCBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShO
b2RlKiBub2RlKSBjb25zdAogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIE5vZGVG
aWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCBiZTVkMDY1ZDAwNGQwZjk4
MDZiODAwMzM2N2YxZDQwMTVmNjYwMzUyLi45NWZjMTAxZjQzZTdjZWE4ZmExYzZhYTQwODJlNjkw
ZGQ4YWZkOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTMwNSw3ICszMDUsNyBAQCBzdWIgU2tpcEZ1
bmN0aW9uIHsKICAgICAjIHNlcXVlbmNlPFQ+IHBhcmFtZXRlcnMsIGJlY2F1c2UgdGhpcyBjb2Rl
IGdlbmVyYXRvciBkb2Vzbid0IGtub3cgaG93IHRvIGF1dG8tZ2VuZXJhdGUKICAgICAjIE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIgb3Igc2VxdWVuY2U8VD4uIFNraXAgRXZlbnRMaXN0ZW5lcnMgYmVj
YXVzZSB0aGV5IGFyZSBoYW5kbGVkIGVsc2V3aGVyZS4KICAgICBmb3JlYWNoIG15ICRwYXJhbSAo
QHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+
SXNDYWxsYmFja0ludGVyZmFjZSgkcGFyYW0tPnR5cGUpIHx8CisgICAgICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNGdW5jdGlvbk9ubHlDYWxsYmFja0ludGVyZmFjZSgkcGFyYW0tPnR5cGUpIHx8
CiAgICAgICAgICAgICAkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDbGFtcCJ9IHx8CiAg
ICAgICAgICAgICAkcGFyYW0tPnR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiIHx8CiAg
ICAgICAgICAgICAkcGFyYW0tPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiIHx8CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGU5
ZTc0NTAyMzczNmI5NTcwMDBiYzQ1N2NhYzE2OWZhMjJjNmNiYjguLmJmMTM0YjNkZDVlZWE2Y2U4
ZWFhNTQ3NjY5MjlhMTYxOTUxMTFjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xOTEsNiArMTkxLDEzIEBAIHN1YiBH
ZXRDYWxsYmFja0NsYXNzTmFtZQogICAgIHJldHVybiAiSlMkY2xhc3NOYW1lIjsKIH0KIAorc3Vi
IEdldEpTQ2FsbGJhY2tEYXRhVHlwZQoreworICAgIG15ICRjYWxsYmFja0ludGVyZmFjZSA9IHNo
aWZ0OworCisgICAgcmV0dXJuICRjYWxsYmFja0ludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IklzV2Vha0NhbGxiYWNrIn0gPyAiSlNDYWxsYmFja0RhdGFXZWFrIiA6ICJKU0NhbGxiYWNr
RGF0YVN0cm9uZyI7Cit9CisKIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwKIHsKICAgICBt
eSAkdHlwZSA9IHNoaWZ0OwpAQCAtMzQ3NSw2ICszNDgyLDggQEAgc3ViIEdlbmVyYXRlQ2FsbGJh
Y2tIZWFkZXIKICAgICAjIERlc3RydWN0b3IKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHZpcnR1YWwgfiRjbGFzc05hbWUoKTtcbiIpOwogCisgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAiIC4gR2V0SlNDYWxsYmFja0RhdGFUeXBlKCRpbnRlcmZhY2UpIC4gIiogY2FsbGJhY2tE
YXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9XG4iKTsKKwogICAgICMgQ29uc3RydWN0b3Igb2JqZWN0
IGdldHRlci4KICAgICBpZiAoQHskaW50ZXJmYWNlLT5jb25zdGFudHN9KSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3Rv
cihKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIik7CkBAIC0zNTEzLDkgKzM1MjIs
MTMgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgICRjbGFzc05hbWUoSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2Jq
ZWN0Kik7XG5cbiIpOwogCiAgICAgIyBQcml2YXRlIG1lbWJlcnMKLSAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7XG4iKTsKKyAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgICIgLiBHZXRKU0NhbGxiYWNrRGF0YVR5cGUoJGludGVyZmFjZSkgLiAi
KiBtX2RhdGE7XG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtcblxuIik7CiAKKyAg
ICAjIHRvSlMoKS4KKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4i
KTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCAkaW50
ZXJmYWNlTmFtZSYgaW1wbCkgeyByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsICZpbXBs
KTsgfVxuXG4iKTsKKwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlXG5cbiIpOwogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9y
LT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UpOwogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRp
dGlvbmFsU3RyaW5nOwpAQCAtMzU0OSw3ICszNTYyLDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJ
bXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICR7aW50ZXJm
YWNlTmFtZX0oKVxuIik7CiAgICAgfQogICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICwgQWN0
aXZlRE9NQ2FsbGJhY2soZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpXG4i
KTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1fZGF0YShuZXcgSlNDYWxsYmFja0Rh
dGEoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAsIG1fZGF0YShuZXcgIiAuIEdldEpTQ2FsbGJhY2tEYXRhVHlwZSgkaW50ZXJmYWNlKSAu
ICIoY2FsbGJhY2ssIHRoaXMpKVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKQEAgLTM1NjQsNyArMzU3Nyw3IEBA
IHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBlbHNlXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgY29udGV4
dC0+cG9zdFRhc2soRGVsZXRlQ2FsbGJhY2tEYXRhVGFzayhtX2RhdGEpKTtcbiIpOwogICAgIHB1
c2goQGltcGxDb250ZW50LCAiI2lmbmRlZiBOREVCVUdcbiIpOwotICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIG1fZGF0YSA9IDA7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBt
X2RhdGEgPSBudWxscHRyO1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIp
OwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIApAQCAtMzY4OSw2ICszNzAyLDE0
IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KICAgICAgICAgfQogICAgIH0K
IAorICAgICMgdG9KUygpIGltcGxlbWVudGF0aW9uLgorICAgIHB1c2goQGltcGxDb250ZW50LCAi
XG5KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
JGludGVyZmFjZU5hbWUqIGltcGwpXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OworICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghaW1wbCB8fCAhc3RhdGljX2Nhc3Q8
JHtjbGFzc05hbWV9Jj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpKVxuIik7CisgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHJldHVybiBqc051bGwoKTtcblxuIik7CisgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcmV0dXJuIHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSY+KCppbXBsKS5j
YWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTtcblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ9XG4iKTsKKwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG59XG4iKTsKICAgICBteSAkY29u
ZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmlu
ZygkaW50ZXJmYWNlKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQppbmRleCBj
NWI4Nzc5Mzk2NzU1YzRhZDAzY2ViMzgzNjhjMWYyM2U5NzJjYWE2Li42MzVkMTMzMzM2OWE5MzBl
NGUxZWUwODZlNzU2NmFlMTg5MmEzZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTQyMCw2ICs0MjAsNyBAQCBz
dWIgR2V0SW1wbENsYXNzTmFtZQogewogICAgIG15ICRuYW1lID0gc2hpZnQ7CiAKKyAgICByZXR1
cm4gIk5hdGl2ZU5vZGVGaWx0ZXIiIGlmICRuYW1lIGVxICJOb2RlRmlsdGVyIjsKICAgICByZXR1
cm4gIkRPTVdpbmRvdyIgaWYgJG5hbWUgZXEgIkFic3RyYWN0VmlldyI7CiAgICAgcmV0dXJuICRu
YW1lOwogfQpAQCAtNjkzLDcgKzY5NCw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICB9
CiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICRpbXBsSW5jbHVk
ZXN7Ik5vZGVGaWx0ZXIuaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siTmF0aXZlTm9k
ZUZpbHRlci5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJPYmpDTm9kZUZpbHRlckNv
bmRpdGlvbi5oIn0gPSAxOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTU1Nyw3ICsxNTU4
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBteSAkcGFy
YW1OYW1lID0gJG5lZWRzQ3VzdG9teyJOb2RlRmlsdGVyIn07CiAgICAgICAgICAgICAgICAgcHVz
aChAZnVuY3Rpb25Db250ZW50LCAiICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlRmlsdGVyPiBuYXRp
dmVOb2RlRmlsdGVyO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50
LCAiICAgIGlmICgkcGFyYW1OYW1lKVxuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rp
b25Db250ZW50LCAiICAgICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6Tm9kZUZpbHRl
cjo6Y3JlYXRlKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFt
TmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAg
ICAgICBuYXRpdmVOb2RlRmlsdGVyID0gV2ViQ29yZTo6TmF0aXZlTm9kZUZpbHRlcjo6Y3JlYXRl
KFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoJHBhcmFtTmFtZSkpO1xu
Iik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlck5hbWVzLCAi
ZWMiKSBpZiAkcmFpc2VzRXhjZXB0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IDE2YjRhMTlhMzhiMjNhY2Q3MTQ1NmZl
MDIxYzM1OTYyZjRlMWEwN2MuLmU4MTJkYTMwM2QyMmZlMTViYTllM2I2NjAyOTU3YTk0OTVmZWVi
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmli
dXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1
dGVzLnR4dApAQCAtNzMsNiArNzMsNyBAQCBJbXBsZW1lbnRlZEFzPSoKIEluaXRpYWxpemVkQnlF
dmVudENvbnN0cnVjdG9yCiBJbnRlcmZhY2VOYW1lPSoKIElzSW5kZXgKK0lzV2Vha0NhbGxiYWNr
CiBKU0N1c3RvbURlZmluZU93blByb3BlcnR5CiBKU0N1c3RvbURlZmluZU93blByb3BlcnR5T25Q
cm90b3R5cGUKIEpTQ3VzdG9tRmluYWxpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCmluZGV4IDQ4NzE1
NTgxMzVhOTk1N2E1Y2U5NTdhY2YxNThkY2I3YzgxYTIzZTUuLjkxODliMjU5Y2I3YjY2NjhjODk2
YWJkZDk1ZTg2Mjg4MDdiNGFiYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcApAQCAtNDEsNyArNDEs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBKU1Rlc3RDYWxsYmFjazo6SlNUZXN0Q2FsbGJhY2so
SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAg
IDogVGVzdENhbGxiYWNrKCkKICAgICAsIEFjdGl2ZURPTUNhbGxiYWNrKGdsb2JhbE9iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICwgbV9kYXRhKG5ldyBKU0NhbGxiYWNrRGF0
YShjYWxsYmFjaywgZ2xvYmFsT2JqZWN0KSkKKyAgICAsIG1fZGF0YShuZXcgSlNDYWxsYmFja0Rh
dGFTdHJvbmcoY2FsbGJhY2ssIHRoaXMpKQogewogfQogCkBAIC01NSw3ICs1NSw3IEBAIEpTVGVz
dENhbGxiYWNrOjp+SlNUZXN0Q2FsbGJhY2soKQogICAgIGVsc2UKICAgICAgICAgY29udGV4dC0+
cG9zdFRhc2soRGVsZXRlQ2FsbGJhY2tEYXRhVGFzayhtX2RhdGEpKTsKICNpZm5kZWYgTkRFQlVH
Ci0gICAgbV9kYXRhID0gMDsKKyAgICBtX2RhdGEgPSBudWxscHRyOwogI2VuZGlmCiB9CiAKQEAg
LTIzOCw2ICsyMzgsMTUgQEAgYm9vbCBKU1Rlc3RDYWxsYmFjazo6Y2FsbGJhY2tSZXF1aXJlc1Ro
aXNUb1Bhc3MoaW50IGxvbmdQYXJhbSwgVGVzdE5vZGUqIHRlc3ROb2QKICAgICByZXR1cm4gIXJl
dHVybmVkRXhjZXB0aW9uOwogfQogCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdENhbGxiYWNrKiBpbXBsKQoreworICAgIGlmICghaW1w
bCB8fCAhc3RhdGljX2Nhc3Q8SlNUZXN0Q2FsbGJhY2smPigqaW1wbCkuY2FsbGJhY2tEYXRhKCkp
CisgICAgICAgIHJldHVybiBqc051bGwoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU1Rl
c3RDYWxsYmFjayY+KCppbXBsKS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJhY2soKTsKKworfQorCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgKaW5k
ZXggYTIyYjcwYjNiMTkzYjMyNDM0NDdhOThlYzQ2NjQ2ZjlhZjkzMzRmMC4uMDJhNWY3NGY5M2I4
ZGVmNGQ4NTUxYmQ1YTJmNWY0NGNjMzA2ODA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmgKQEAgLTQwLDYg
KzQwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIHZpcnR1YWwgfkpTVGVz
dENhbGxiYWNrKCk7CisgICAgSlNDYWxsYmFja0RhdGFTdHJvbmcqIGNhbGxiYWNrRGF0YSgpIHsg
cmV0dXJuIG1fZGF0YTsgfQogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3Io
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIAogICAgIC8vIEZ1bmN0aW9ucwpAQCAt
NTUsOSArNTYsMTIgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBKU1Rlc3RDYWxsYmFjayhKU0M6
OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqKTsKIAotICAgIEpTQ2FsbGJh
Y2tEYXRhKiBtX2RhdGE7CisgICAgSlNDYWxsYmFja0RhdGFTdHJvbmcqIG1fZGF0YTsKIH07CiAK
K0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0Q2FsbGJhY2sqKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdENhbGxiYWNrJiBpbXBs
KSB7IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgJmltcGwpOyB9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxiYWNrRnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwCmluZGV4IDBjNDVjM2ZkNDJkOTY3NjQxZDJi
Y2Q3YmE3NWJlMGFhYzQ3YzhjMDEuLjFiMTQ0YTcxZDM5ODA4MjI1NzBkZjgwZTU2YWY1ZWFmNzYz
YjIyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTQxLDcgKzQx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbjo6SlNUZXN0
Q2FsbGJhY2tGdW5jdGlvbihKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgOiBUZXN0Q2FsbGJhY2tGdW5jdGlvbigpCiAgICAgLCBBY3RpdmVE
T01DYWxsYmFjayhnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAs
IG1fZGF0YShuZXcgSlNDYWxsYmFja0RhdGEoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpCisgICAg
LCBtX2RhdGEobmV3IEpTQ2FsbGJhY2tEYXRhU3Ryb25nKGNhbGxiYWNrLCB0aGlzKSkKIHsKIH0K
IApAQCAtNTUsNyArNTUsNyBAQCBKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uOjp+SlNUZXN0Q2FsbGJh
Y2tGdW5jdGlvbigpCiAgICAgZWxzZQogICAgICAgICBjb250ZXh0LT5wb3N0VGFzayhEZWxldGVD
YWxsYmFja0RhdGFUYXNrKG1fZGF0YSkpOwogI2lmbmRlZiBOREVCVUcKLSAgICBtX2RhdGEgPSAw
OworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtMTg5LDYgKzE4OSwxNSBA
QCBib29sIEpTVGVzdENhbGxiYWNrRnVuY3Rpb246OmNhbGxiYWNrUmVxdWlyZXNUaGlzVG9QYXNz
KGludCBsb25nUGFyYW0sIFRlc3ROb2RlKgogICAgIHJldHVybiAhcmV0dXJuZWRFeGNlcHRpb247
CiB9CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwgfHwgIXN0
YXRpY19jYXN0PEpTVGVzdENhbGxiYWNrRnVuY3Rpb24mPigqaW1wbCkuY2FsbGJhY2tEYXRhKCkp
CisgICAgICAgIHJldHVybiBqc051bGwoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU1Rl
c3RDYWxsYmFja0Z1bmN0aW9uJj4oKmltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpOwor
Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNr
RnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggM2ZlM2YyMDhkYWU1MWIyOGU2ZTljNzBkZDVkYzhl
NmZiNWVkZjU5Mi4uMTM0MjU3ZGE1ZTBhOWRjMzdmZmEyMTlmODI4OTAxNTVlZTQ2ZjE3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxiYWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB2aXJ0dWFsIH5KU1Rlc3RDYWxsYmFja0Z1bmN0aW9u
KCk7CisgICAgSlNDYWxsYmFja0RhdGFTdHJvbmcqIGNhbGxiYWNrRGF0YSgpIHsgcmV0dXJuIG1f
ZGF0YTsgfQogCiAgICAgLy8gRnVuY3Rpb25zCiAgICAgdmlydHVhbCBib29sIGNhbGxiYWNrV2l0
aE5vUGFyYW0oKTsKQEAgLTU0LDkgKzU1LDEyIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSlNU
ZXN0Q2FsbGJhY2tGdW5jdGlvbihKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxP
YmplY3QqKTsKIAotICAgIEpTQ2FsbGJhY2tEYXRhKiBtX2RhdGE7CisgICAgSlNDYWxsYmFja0Rh
dGFTdHJvbmcqIG1fZGF0YTsKIH07CiAKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiopOworaW5saW5lIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBUZXN0Q2FsbGJhY2tGdW5jdGlvbiYgaW1wbCkgeyByZXR1cm4gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QsICZpbXBsKTsgfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5P
bmUuY3BwCmluZGV4IDMwODc5NDZjZDhmOTZlNzFhYTU4NDAyYTlhOGEwNTQ1YWY4OWQ5YzYuLmRj
Y2YwYjgyNWE4N2QzYThjYTFhMDNmYzdiNmVhNTQwZGRmZTliNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcApAQCAtMTA4LDcgKzEwOCw2IEBACiAjaW5jbHVkZSAiTmFtZWRGbG93Q29s
bGVjdGlvbi5jcHAiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmNwcCIKICNpbmNsdWRlICJOb2Rl
LmNwcCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyLmNwcCIKICNpbmNsdWRlICJOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcCIKICNpbmNsdWRlICJOb2RlSXRlcmF0b3IuY3BwIgogI2luY2x1ZGUgIk5vZGVP
clN0cmluZy5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZp
bHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmF0aXZlTm9kZUZpbHRlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTBhMzRjOWZmNGI1MTU5ZmY5NjI0NGQ2Mjc3MzA2YTU5MWI4NDgwYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmNwcApAQCAtMCww
ICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5h
dGl2ZU5vZGVGaWx0ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitOYXRpdmVOb2RlRmls
dGVyOjpOYXRpdmVOb2RlRmlsdGVyKFJlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiYmIGNvbmRp
dGlvbikKKyAgICA6IG1fY29uZGl0aW9uKGNvbmRpdGlvbikKK3sgfQorCit1aW50MTZfdCBOYXRp
dmVOb2RlRmlsdGVyOjphY2NlcHROb2RlKE5vZGUqIG5vZGUpCit7CisgICAgLy8gY2FzdCB0byBz
aG9ydCBzaWxlbmNlcyAiZW51bWVyYWwgYW5kIG5vbi1lbnVtZXJhbCB0eXBlcyBpbiByZXR1cm4i
IHdhcm5pbmcKKyAgICByZXR1cm4gbV9jb25kaXRpb24gPyBtX2NvbmRpdGlvbi0+YWNjZXB0Tm9k
ZShub2RlKSA6IHN0YXRpY19jYXN0PHVpbnQxNl90PihGSUxURVJfQUNDRVBUKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05hdGl2
ZU5vZGVGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2IwNzhlYWJjNDYwMzY1MGYzNTM0YTc3ZWIyZjQ4MTMzMWYyNGE5NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9OYXRpdmVOb2RlRmlsdGVyLmgKQEAgLTAs
MCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmF0aXZlTm9kZUZpbHRlcl9oCisjZGVm
aW5lIE5hdGl2ZU5vZGVGaWx0ZXJfaAorCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorI2luY2x1
ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBOYXRpdmVOb2RlRmlsdGVyIGZpbmFsIDogcHVibGljIE5vZGVGaWx0ZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TmF0aXZlTm9kZUZpbHRlcj4gY3JlYXRlKFJlZlB0cjxOb2RlRmlsdGVy
Q29uZGl0aW9uPiYmIGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5hdGl2ZU5vZGVGaWx0ZXIoV1RGOjptb3ZlKGNvbmRpdGlvbikpKTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgUmVmPE5hdGl2ZU5vZGVGaWx0ZXI+IGNyZWF0ZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXRpdmVOb2RlRmlsdGVyKCkpOworICAgIH0KKworICAgIHZp
cnR1YWwgdWludDE2X3QgYWNjZXB0Tm9kZShOb2RlKikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNl
dENvbmRpdGlvbihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlvbj4mJiBjb25kaXRpb24pIHsgQVNT
RVJUKCFtX2NvbmRpdGlvbik7IG1fY29uZGl0aW9uID0gY29uZGl0aW9uOyB9CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgTmF0aXZlTm9kZUZpbHRlcihSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlv
bj4mJik7CisKKyAgICBOYXRpdmVOb2RlRmlsdGVyKCkgeyB9CisKKyAgICBSZWZQdHI8Tm9kZUZp
bHRlckNvbmRpdGlvbj4gbV9jb25kaXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBOYXRpdmVOb2RlRmlsdGVyX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGFiYzU0MGE3MGU3NTQ4YTk5NGEy
NzQxYjQwMzIzMjc3YzcxZTRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMCBGcmVkZXJpayBIb2xsamVuIChm
cmVkZXJpay5ob2xsamVuQGhpZy5ubykKLSAqIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxs
eSAocG1rQHBvc3QuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNh
bS53ZWluaWdAZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJOb2RlRmlsdGVyLmgiCi0KLSNpbmNsdWRlICJOb2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotc2hvcnQgTm9kZUZpbHRlcjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IE5vZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAgLy8gY2FzdCB0byBzaG9ydCBzaWxlbmNlcyAiZW51
bWVyYWwgYW5kIG5vbi1lbnVtZXJhbCB0eXBlcyBpbiByZXR1cm4iIHdhcm5pbmcKLSAgICByZXR1
cm4gbV9jb25kaXRpb24gPyBtX2NvbmRpdGlvbi0+YWNjZXB0Tm9kZShzdGF0ZSwgbm9kZSkgOiBz
dGF0aWNfY2FzdDxzaG9ydD4oRklMVEVSX0FDQ0VQVCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5oCmluZGV4IDU3Yzk1NWFmN2QzYjYyYmVhOGQxMjZm
N2Q1MDA2MzM0MDAyNWFmZjIuLjA2MTEyOWFlMjA5OGZkZGQyZWVkYTcxYzQ2NDcxM2U5MTk1MDIw
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaApAQCAtMyw3ICszLDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMjAwMCBGcmVkZXJpayBIb2xsamVuIChmcmVkZXJpay5ob2xsamVuQGhpZy5ubykKICAq
IENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogQ29weXJp
Z2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdAZ21haWwuY29tKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwOCwgMjAwOSwgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDcwICsyNSw1MCBA
QAogI2lmbmRlZiBOb2RlRmlsdGVyX2gKICNkZWZpbmUgTm9kZUZpbHRlcl9oCiAKLSNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKLSNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE5vZGVGaWx0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxOb2RlRmlsdGVyPiB7Ci0gICAgcHVibGljOgotICAgICAgICAvKioKLSAgICAgICAgICog
VGhlIGZvbGxvd2luZyBjb25zdGFudHMgYXJlIHJldHVybmVkIGJ5IHRoZSBhY2NlcHROb2RlKCkK
LSAgICAgICAgICogbWV0aG9kOgotICAgICAgICAgKi8KLSAgICAgICAgZW51bSB7Ci0gICAgICAg
ICAgICBGSUxURVJfQUNDRVBUID0gMSwKLSAgICAgICAgICAgIEZJTFRFUl9SRUpFQ1QgPSAyLAot
ICAgICAgICAgICAgRklMVEVSX1NLSVAgICA9IDMKLSAgICAgICAgfTsKK2NsYXNzIE5vZGU7CiAK
LSAgICAgICAgLyoqCi0gICAgICAgICAqIFRoZXNlIGFyZSB0aGUgYXZhaWxhYmxlIHZhbHVlcyBm
b3IgdGhlIHdoYXRUb1Nob3cgcGFyYW1ldGVyLgotICAgICAgICAgKiBUaGV5IGFyZSB0aGUgc2Ft
ZSBhcyB0aGUgc2V0IG9mIHBvc3NpYmxlIHR5cGVzIGZvciBOb2RlLCBhbmQKLSAgICAgICAgICog
dGhlaXIgdmFsdWVzIGFyZSBkZXJpdmVkIGJ5IHVzaW5nIGEgYml0IHBvc2l0aW9uIGNvcnJlc3Bv
bmRpbmcKLSAgICAgICAgICogdG8gdGhlIHZhbHVlIG9mIE5vZGVUeXBlIGZvciB0aGUgZXF1aXZh
bGVudCBub2RlIHR5cGUuCi0gICAgICAgICAqLwotICAgICAgICBlbnVtIDogdW5zaWduZWQgbG9u
ZyB7Ci0gICAgICAgICAgICBTSE9XX0FMTCAgICAgICAgICAgICAgICAgICAgICAgPSAweEZGRkZG
RkZGLAotICAgICAgICAgICAgU0hPV19FTEVNRU5UICAgICAgICAgICAgICAgICAgID0gMHgwMDAw
MDAwMSwKLSAgICAgICAgICAgIFNIT1dfQVRUUklCVVRFICAgICAgICAgICAgICAgICA9IDB4MDAw
MDAwMDIsCi0gICAgICAgICAgICBTSE9XX1RFWFQgICAgICAgICAgICAgICAgICAgICAgPSAweDAw
MDAwMDA0LAotICAgICAgICAgICAgU0hPV19DREFUQV9TRUNUSU9OICAgICAgICAgICAgID0gMHgw
MDAwMDAwOCwKLSAgICAgICAgICAgIFNIT1dfRU5USVRZX1JFRkVSRU5DRSAgICAgICAgICA9IDB4
MDAwMDAwMTAsCi0gICAgICAgICAgICBTSE9XX0VOVElUWSAgICAgICAgICAgICAgICAgICAgPSAw
eDAwMDAwMDIwLAotICAgICAgICAgICAgU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICAgID0g
MHgwMDAwMDA0MCwKLSAgICAgICAgICAgIFNIT1dfQ09NTUVOVCAgICAgICAgICAgICAgICAgICA9
IDB4MDAwMDAwODAsCi0gICAgICAgICAgICBTSE9XX0RPQ1VNRU5UICAgICAgICAgICAgICAgICAg
PSAweDAwMDAwMTAwLAotICAgICAgICAgICAgU0hPV19ET0NVTUVOVF9UWVBFICAgICAgICAgICAg
ID0gMHgwMDAwMDIwMCwKLSAgICAgICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01FTlQgICAgICAg
ICA9IDB4MDAwMDA0MDAsCi0gICAgICAgICAgICBTSE9XX05PVEFUSU9OICAgICAgICAgICAgICAg
ICAgPSAweDAwMDAwODAwCi0gICAgICAgIH07CitjbGFzcyBOb2RlRmlsdGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8Tm9kZUZpbHRlcj4geworcHVibGljOgorICAgIHZpcnR1YWwgfk5vZGVGaWx0ZXIo
KSB7IH0KKyAgICB2aXJ0dWFsIHVpbnQxNl90IGFjY2VwdE5vZGUoTm9kZSopID0gMDsKIAotICAg
ICAgICBzdGF0aWMgUmVmPE5vZGVGaWx0ZXI+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGVGaWx0ZXJD
b25kaXRpb24+IGNvbmRpdGlvbikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTm9kZUZpbHRlcihjb25kaXRpb24pKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0
YXRpYyBSZWY8Tm9kZUZpbHRlcj4gY3JlYXRlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTm9kZUZpbHRlcigpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHNo
b3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7Ci0KLSAgICAgICAg
Ly8gRG8gbm90IGNhbGwgdGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNjYWZmb2xkaW5n
IHRvIHN1cHBvcnQgdGhlIE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAvLyBUaGV5IG9w
ZXJhdGUgaW4gdGhlIG1haW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkgc3dhbGxvdyBK
UyBleGNlcHRpb25zLgotICAgICAgICBzaG9ydCBhY2NlcHROb2RlKE5vZGUqIG5vZGUpIGNvbnN0
IHsgcmV0dXJuIGFjY2VwdE5vZGUoZXhlY1N0YXRlRnJvbU5vZGUobWFpblRocmVhZE5vcm1hbFdv
cmxkKCksIG5vZGUpLCBub2RlKTsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBzZXRDb25kaXRp
b24oUGFzc1JlZlB0cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBjb25kaXRpb24pIHsgQVNTRVJUKCFt
X2NvbmRpdGlvbik7IG1fY29uZGl0aW9uID0gY29uZGl0aW9uOyB9Ci0KLSAgICBwcml2YXRlOgot
ICAgICAgICBleHBsaWNpdCBOb2RlRmlsdGVyKFBhc3NSZWZQdHI8Tm9kZUZpbHRlckNvbmRpdGlv
bj4gY29uZGl0aW9uKSA6IG1fY29uZGl0aW9uKGNvbmRpdGlvbikgeyB9Ci0gICAgICAgIE5vZGVG
aWx0ZXIoKSB7fQorICAgIC8qCisgICAgICogVGhlIGZvbGxvd2luZyBjb25zdGFudHMgYXJlIHJl
dHVybmVkIGJ5IHRoZSBhY2NlcHROb2RlKCkKKyAgICAgKiBtZXRob2Q6CisgICAgICovCisgICAg
ZW51bSB7CisgICAgICAgIEZJTFRFUl9BQ0NFUFQgPSAxLAorICAgICAgICBGSUxURVJfUkVKRUNU
ID0gMiwKKyAgICAgICAgRklMVEVSX1NLSVAgICA9IDMKKyAgICB9OwogCi0gICAgICAgIFJlZlB0
cjxOb2RlRmlsdGVyQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKKyAgICAvKgorICAgICAqIFRoZXNl
IGFyZSB0aGUgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIHdoYXRUb1Nob3cgcGFyYW1ldGVyLgor
ICAgICAqIFRoZXkgYXJlIHRoZSBzYW1lIGFzIHRoZSBzZXQgb2YgcG9zc2libGUgdHlwZXMgZm9y
IE5vZGUsIGFuZAorICAgICAqIHRoZWlyIHZhbHVlcyBhcmUgZGVyaXZlZCBieSB1c2luZyBhIGJp
dCBwb3NpdGlvbiBjb3JyZXNwb25kaW5nCisgICAgICogdG8gdGhlIHZhbHVlIG9mIE5vZGVUeXBl
IGZvciB0aGUgZXF1aXZhbGVudCBub2RlIHR5cGUuCisgICAgICovCisgICAgZW51bSA6IHVuc2ln
bmVkIGxvbmcgeworICAgICAgICBTSE9XX0FMTCAgICAgICAgICAgICAgICAgICAgICAgPSAweEZG
RkZGRkZGLAorICAgICAgICBTSE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAw
MDAxLAorICAgICAgICBTSE9XX0FUVFJJQlVURSAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDAy
LAorICAgICAgICBTSE9XX1RFWFQgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDA0LAor
ICAgICAgICBTSE9XX0NEQVRBX1NFQ1RJT04gICAgICAgICAgICAgPSAweDAwMDAwMDA4LAorICAg
ICAgICBTSE9XX0VOVElUWV9SRUZFUkVOQ0UgICAgICAgICAgPSAweDAwMDAwMDEwLAorICAgICAg
ICBTSE9XX0VOVElUWSAgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDIwLAorICAgICAgICBT
SE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gICAgPSAweDAwMDAwMDQwLAorICAgICAgICBTSE9X
X0NPTU1FTlQgICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDgwLAorICAgICAgICBTSE9XX0RP
Q1VNRU5UICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMTAwLAorICAgICAgICBTSE9XX0RPQ1VN
RU5UX1RZUEUgICAgICAgICAgICAgPSAweDAwMDAwMjAwLAorICAgICAgICBTSE9XX0RPQ1VNRU5U
X0ZSQUdNRU5UICAgICAgICAgPSAweDAwMDAwNDAwLAorICAgICAgICBTSE9XX05PVEFUSU9OICAg
ICAgICAgICAgICAgICAgPSAweDAwMDAwODAwCiAgICAgfTsKK307CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCmluZGV4IGRlZWUwYWI2MzgyMjFj
YzUwNDA5YWFmODllMzQ2MmY4NGEyZGMyYWMuLjdlZDBkZDEzMTAwZjFjYTBmODJiMDhjOWZiZDQ1
Yjc4YzQ0ZWI0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKQEAgLTIwLDE2ICsyMCwx
MyBAQAogCiAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogWwotICAgIEpTQ3VzdG9tTWFy
a0Z1bmN0aW9uLAotICAgIEpTQ3VzdG9tVG9OYXRpdmVPYmplY3QsCiAgICAgT2JqQ1Byb3RvY29s
LAotICAgIENQUFB1cmVJbnRlcmZhY2UsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwK
LV0gaW50ZXJmYWNlIE5vZGVGaWx0ZXIgeworICAgIElzV2Vha0NhbGxiYWNrLAorXSBjYWxsYmFj
ayBpbnRlcmZhY2UgTm9kZUZpbHRlciB7CiAgICAgLy8gQ29uc3RhbnRzIHJldHVybmVkIGJ5IGFj
Y2VwdE5vZGUKLSAgICBjb25zdCBzaG9ydCAgICAgICAgICAgICAgIEZJTFRFUl9BQ0NFUFQgICAg
ICAgICAgICAgICAgICA9IDE7Ci0gICAgY29uc3Qgc2hvcnQgICAgICAgICAgICAgICBGSUxURVJf
UkVKRUNUICAgICAgICAgICAgICAgICAgPSAyOwotICAgIGNvbnN0IHNob3J0ICAgICAgICAgICAg
ICAgRklMVEVSX1NLSVAgICAgICAgICAgICAgICAgICAgID0gMzsKKyAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBGSUxURVJfQUNDRVBUID0gMTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxU
RVJfUkVKRUNUID0gMjsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGSUxURVJfU0tJUCA9IDM7
CiAKICAgICAvLyBDb25zdGFudHMgZm9yIHdoYXRUb1Nob3cKICAgICBjb25zdCB1bnNpZ25lZCBs
b25nICAgICAgIFNIT1dfQUxMICAgICAgICAgICAgICAgICAgICAgICA9IDB4RkZGRkZGRkY7CkBA
IC00Niw3ICs0MywxMCBAQAogICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgU0hPV19ET0NV
TUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMDsKICAgICBjb25zdCB1bnNpZ25lZCBs
b25nICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAgICAgICAgICA9IDB4MDAwMDA4MDA7CiAK
LSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIHNob3J0IGFjY2VwdE5vZGUoW0RlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBOb2RlIG4pOwotCisjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJ
VkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKKyAgICBzaG9ydCBhY2NlcHROb2RlKFtEZWZh
dWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgTm9kZSBuKTsKKyNlbHNlCisgICAgW0N1c3RvbV0gdW5z
aWduZWQgc2hvcnQgYWNjZXB0Tm9kZShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIE5vZGUg
bik7CisjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmls
dGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0aW9u
LmNwcAppbmRleCBlNDc4ZDk0OGFhNDQ4YzJjOGVlMjk0ZGE5MjMxOWVmMWJmYjU3YzAxLi43MmM5
ZWUxMjZmODQ2Y2JiNzM4ZGE1ZDkwNDBlMmQ3Y2Y1MDgyOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotc2hvcnQgTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6
OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdAorc2hvcnQgTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNj
ZXB0Tm9kZShOb2RlKikgY29uc3QKIHsKICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklMVEVSX0FD
Q0VQVDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyQ29uZGl0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDhi
YTM4ZjY5OTEwZGE1YWE0MjgyZDk1ZjRjMzQyYmRmZjNmMGNjZDMuLjJiOWFiNjhmZGNjM2YyZTY3
YzZlNWUyMGIwZTEwNTI1NjAzNTY3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXJD
b25kaXRpb24uaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5vZGVGaWx0ZXJDb25k
aXRpb24+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk5vZGVGaWx0ZXJDb25kaXRp
b24oKSB7IH0KLSAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRl
KiwgTm9kZSopIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKE5v
ZGUqKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdEFnZ3JlZ2F0ZShKU0M6
OlNsb3RWaXNpdG9yJikgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNw
cAppbmRleCBlNDM2Yzc4OWJlN2MzODlmOWEwOWI5OTUzNGFiZWE0MzJiYjVmNWMyLi44ZjI5YWIw
MTg4YTk0ODdkNjJmZjU3MTJmZjE5NjFiYjE1NGUyMGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmNwcApAQCAtODgsNyArODgsNyBAQCBOb2RlSXRlcmF0b3I6On5Ob2RlSXRlcmF0b3Io
KQogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5kZXRhY2hOb2RlSXRlcmF0b3IodGhpcyk7CiB9CiAK
LVJlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSkKK1JlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6Om5leHROb2RlKCkKIHsKICAgICBSZWZQdHI8
Tm9kZT4gcmVzdWx0OwogCkBAIC05OCw5ICs5OCw3IEBAIFJlZlB0cjxOb2RlPiBOb2RlSXRlcmF0
b3I6Om5leHROb2RlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgLy8gSW4gb3RoZXIg
d29yZHMsIEZJTFRFUl9SRUpFQ1QgZG9lcyBub3QgcGFzcyBvdmVyIGRlc2NlbmRhbnRzCiAgICAg
ICAgIC8vIG9mIHRoZSByZWplY3RlZCBub2RlLiBIZW5jZSwgRklMVEVSX1JFSkVDVCBpcyB0aGUg
c2FtZSBhcyBGSUxURVJfU0tJUC4KICAgICAgICAgUmVmUHRyPE5vZGU+IHByb3Zpc2lvbmFsUmVz
dWx0ID0gbV9jYW5kaWRhdGVOb2RlLm5vZGU7Ci0gICAgICAgIGJvb2wgbm9kZVdhc0FjY2VwdGVk
ID0gYWNjZXB0Tm9kZShzdGF0ZSwgcHJvdmlzaW9uYWxSZXN1bHQuZ2V0KCkpID09IE5vZGVGaWx0
ZXI6OkZJTFRFUl9BQ0NFUFQ7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0
aW9uKCkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0ZWQg
PSBhY2NlcHROb2RlKHByb3Zpc2lvbmFsUmVzdWx0LmdldCgpKSA9PSBOb2RlRmlsdGVyOjpGSUxU
RVJfQUNDRVBUOwogICAgICAgICBpZiAobm9kZVdhc0FjY2VwdGVkKSB7CiAgICAgICAgICAgICBt
X3JlZmVyZW5jZU5vZGUgPSBtX2NhbmRpZGF0ZU5vZGU7CiAgICAgICAgICAgICByZXN1bHQgPSBw
cm92aXNpb25hbFJlc3VsdC5yZWxlYXNlKCk7CkBAIC0xMTIsNyArMTEwLDcgQEAgUmVmUHRyPE5v
ZGU+IE5vZGVJdGVyYXRvcjo6bmV4dE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLVJlZlB0cjxOb2RlPiBOb2RlSXRlcmF0b3I6OnByZXZpb3VzTm9k
ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpwcmV2
aW91c05vZGUoKQogewogICAgIFJlZlB0cjxOb2RlPiByZXN1bHQ7CiAKQEAgLTEyMiw5ICsxMjAs
NyBAQCBSZWZQdHI8Tm9kZT4gTm9kZUl0ZXJhdG9yOjpwcmV2aW91c05vZGUoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlKQogICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgRklMVEVSX1JFSkVDVCBkb2Vz
IG5vdCBwYXNzIG92ZXIgZGVzY2VuZGFudHMKICAgICAgICAgLy8gb2YgdGhlIHJlamVjdGVkIG5v
ZGUuIEhlbmNlLCBGSUxURVJfUkVKRUNUIGlzIHRoZSBzYW1lIGFzIEZJTFRFUl9TS0lQLgogICAg
ICAgICBSZWZQdHI8Tm9kZT4gcHJvdmlzaW9uYWxSZXN1bHQgPSBtX2NhbmRpZGF0ZU5vZGUubm9k
ZTsKLSAgICAgICAgYm9vbCBub2RlV2FzQWNjZXB0ZWQgPSBhY2NlcHROb2RlKHN0YXRlLCBwcm92
aXNpb25hbFJlc3VsdC5nZXQoKSkgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDsKLSAgICAg
ICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBib29sIG5vZGVXYXNBY2NlcHRlZCA9IGFjY2VwdE5vZGUocHJvdmlzaW9uYWxS
ZXN1bHQuZ2V0KCkpID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQ7CiAgICAgICAgIGlmIChu
b2RlV2FzQWNjZXB0ZWQpIHsKICAgICAgICAgICAgIG1fcmVmZXJlbmNlTm9kZSA9IG1fY2FuZGlk
YXRlTm9kZTsKICAgICAgICAgICAgIHJlc3VsdCA9IHByb3Zpc2lvbmFsUmVzdWx0LnJlbGVhc2Uo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaAppbmRleCAwYjlmYmRjYTBlZDQwZWIwMTY0ZjEw
ZGI0NjQwNjNhMzY0ZmU3OWNiLi40OTc2NmFkMzMyMTY1MTkzNzZjNmUzYWZiZTBjZTI3MzI0NDVh
M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5oCkBAIC00Myw4ICs0Myw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogICAgICAgICB+Tm9kZUl0ZXJhdG9yKCk7CiAKLSAg
ICAgICAgUmVmUHRyPE5vZGU+IG5leHROb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIFJl
ZlB0cjxOb2RlPiBwcmV2aW91c05vZGUoSlNDOjpFeGVjU3RhdGUqKTsKKyAgICAgICAgUmVmUHRy
PE5vZGU+IG5leHROb2RlKCk7CisgICAgICAgIFJlZlB0cjxOb2RlPiBwcmV2aW91c05vZGUoKTsK
ICAgICAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgICAgICBOb2RlKiByZWZlcmVuY2VOb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VOb2RlLm5vZGUuZ2V0KCk7IH0KQEAgLTUzLDExICs1
Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYmVmb3JlIGFueSBub2RlIGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQgdHJlZS4K
ICAgICAgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2RlJik7CiAKLSAgICAgICAgLy8gRG8g
bm90IGNhbGwgdGhlc2UgZnVuY3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNjYWZmb2xkaW5nIHRvIHN1
cHBvcnQgdGhlIE9iamVjdGl2ZS1DIGJpbmRpbmdzLgotICAgICAgICAvLyBUaGV5IG9wZXJhdGUg
aW4gdGhlIG1haW4gdGhyZWFkIG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkgc3dhbGxvdyBKUyBleGNl
cHRpb25zLgotICAgICAgICBSZWZQdHI8Tm9kZT4gbmV4dE5vZGUoKSB7IHJldHVybiBuZXh0Tm9k
ZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgcmVmZXJlbmNlTm9k
ZSgpKSk7IH0KLSAgICAgICAgUmVmUHRyPE5vZGU+IHByZXZpb3VzTm9kZSgpIHsgcmV0dXJuIHBy
ZXZpb3VzTm9kZShleGVjU3RhdGVGcm9tTm9kZShtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgcmVm
ZXJlbmNlTm9kZSgpKSk7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAgIE5vZGVJdGVyYXRvcihQ
YXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFBhc3NSZWZQdHI8Tm9k
ZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVJdGVyYXRvci5pZGwKaW5kZXggYzBlYTZjODkwOWYzMDRkZTg3MjFhNjU3OTExZjBjNTUzZWRk
ZjhiNS4uMTIwMjVkZTZiOGI0OTQ3M2VmZDdmNzg0MDExZjQxZjc2MTMwN2I2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5pZGwKQEAgLTMwLDggKzMwLDggQEAKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgTm9kZSByZWZlcmVuY2VOb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIHBvaW50ZXJCZWZvcmVSZWZlcmVuY2VOb2RlOwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdFN0
YXRlXSBOb2RlIG5leHROb2RlKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIHBy
ZXZpb3VzTm9kZSgpOworICAgIE5vZGUgbmV4dE5vZGUoKTsKKyAgICBOb2RlIHByZXZpb3VzTm9k
ZSgpOwogICAgIHZvaWQgZGV0YWNoKCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3BwCmlu
ZGV4IDFjMjI3MDVlN2ZhN2M0YThkNDkxMDhhYzM4NzIxMzQzZTM4ZjlkNmEuLjc2M2YxNDFjZTcx
NmRjYWNkYjY4MjdhNGVmYmFhYzczZmZhOGI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIE5vZGVJdGVyYXRvckJhc2U6Ok5vZGVJdGVyYXRvckJhc2UoUGFz
c1JlZlB0cjxOb2RlPiByb290Tm9kZSwgdW5zaWduZWQgbG9uZyB3aGF0CiB7CiB9CiAKLXNob3J0
IE5vZGVJdGVyYXRvckJhc2U6OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2Rl
KiBub2RlKSBjb25zdAorc2hvcnQgTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlKiBu
b2RlKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUbyBoYW5kbGUgWE1MIHByb3Blcmx5IHdlIHdv
dWxkIGhhdmUgdG8gY2hlY2sgbV9leHBhbmRFbnRpdHlSZWZlcmVuY2VzLgogCkBAIC00OCw3ICs0
OCw3IEBAIHNob3J0IE5vZGVJdGVyYXRvckJhc2U6OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUq
IHN0YXRlLCBOb2RlKiBub2RlKSBjb25zdAogICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6RklM
VEVSX1NLSVA7CiAgICAgaWYgKCFtX2ZpbHRlcikKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6
OkZJTFRFUl9BQ0NFUFQ7Ci0gICAgcmV0dXJuIG1fZmlsdGVyLT5hY2NlcHROb2RlKHN0YXRlLCBu
b2RlKTsKKyAgICByZXR1cm4gbV9maWx0ZXItPmFjY2VwdE5vZGUobm9kZSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJz
YWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmF2ZXJzYWwuaAppbmRleCAxNWYwOWUyYWFjYmJi
MGEzNDE3MGY4NDUxMGQ0MzVlNzg2Mzg3NDY1Li42YWNmYmRiY2E1ZDNmNGU4NTkwNWYyNjkxZWYx
ZmY2ZTFmMTc0ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5oCkBAIC00Miw3ICs0Miw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgTm9kZUl0ZXJhdG9y
QmFzZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFBhc3NSZWZQ
dHI8Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7Ci0gICAgICAgIHNo
b3J0IGFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBOb2RlKikgY29uc3Q7CisgICAgICAgIHNo
b3J0IGFjY2VwdE5vZGUoTm9kZSopIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVm
UHRyPE5vZGU+IG1fcm9vdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fs
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcAppbmRleCBkZjAzNGIx
N2RiOGU3NzBjNTM4MDQxNGJmODM0NDUxNjhlOGE2MDlmLi4wNTgzNjIwNmQ2NjU0NzVhMzUzMWQy
YmNkMDViOWM3NTE2MDNmMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdh
bGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwCkBAIC01NCwy
OCArNTQsMjQgQEAgaW5saW5lIE5vZGUqIFRyZWVXYWxrZXI6OnNldEN1cnJlbnQoUGFzc1JlZlB0
cjxOb2RlPiBub2RlKQogICAgIHJldHVybiBtX2N1cnJlbnQuZ2V0KCk7CiB9CiAKLU5vZGUqIFRy
ZWVXYWxrZXI6OnBhcmVudE5vZGUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdh
bGtlcjo6cGFyZW50Tm9kZSgpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7
CiAgICAgd2hpbGUgKG5vZGUgIT0gcm9vdCgpKSB7CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJl
bnROb2RlKCk7CiAgICAgICAgIGlmICghbm9kZSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAg
ICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQo
KSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBzaG9y
dCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgaWYg
KGFjY2VwdE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAg
ICAgIHJldHVybiBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAgICB9Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6OmZpcnN0Q2hp
bGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQorTm9kZSogVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCgp
CiB7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudC0+Zmlyc3RDaGlsZCgp
OyBub2RlOyApIHsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUo
c3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHNob3J0IGFjY2VwdE5vZGVS
ZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBzd2l0Y2ggKGFjY2VwdE5v
ZGVSZXN1bHQpIHsKICAgICAgICAgICAgIGNhc2UgTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDoK
ICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBub2RlLnJlbGVhc2UoKTsKQEAgLTk2LDE5ICs5
MiwxNyBAQCBOb2RlKiBUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG5v
ZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgICAgIGlmICghcGFyZW50IHx8IHBhcmVudCA9PSBy
b290KCkgfHwgcGFyZW50ID09IG1fY3VycmVudCkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIG5vZGUgPSBwYXJl
bnQ7CiAgICAgICAgIH0gd2hpbGUgKG5vZGUpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6bGFzdENoaWxkKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Omxhc3RDaGlsZCgpCiB7CiAgICAgZm9y
IChSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudC0+bGFzdENoaWxkKCk7IG5vZGU7ICkgewot
ICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5n
ZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2Vw
dE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3VsdCkgewog
ICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUOgogICAgICAgICAgICAg
ICAgIG1fY3VycmVudCA9IG5vZGUucmVsZWFzZSgpOwpAQCAtMTI5LDIzICsxMjMsMjEgQEAgTm9k
ZSogVHJlZVdhbGtlcjo6bGFzdENoaWxkKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5v
ZGUoKTsKICAgICAgICAgICAgIGlmICghcGFyZW50IHx8IHBhcmVudCA9PSByb290KCkgfHwgcGFy
ZW50ID09IG1fY3VycmVudCkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIG5vZGUgPSBwYXJlbnQ7CiAgICAgICAg
IH0gd2hpbGUgKG5vZGUpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZygpCiB7CiAgICAgUmVm
UHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgaWYgKG5vZGUgPT0gcm9vdCgpKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgd2hpbGUgKDEpIHsK
ICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gc2libGluZyA9IG5vZGUtPnByZXZpb3VzU2libGlu
ZygpOyBzaWJsaW5nOyApIHsKLSAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBh
Y2NlcHROb2RlKHN0YXRlLCBzaWJsaW5nLmdldCgpKTsKLSAgICAgICAgICAgIGlmIChzdGF0ZSAm
JiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzaWJsaW5nLmdldCgp
KTsKICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXB0Tm9kZVJlc3VsdCkgewogICAgICAgICAgICAg
ICAgIGNhc2UgTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVDoKICAgICAgICAgICAgICAgICAgICAg
bV9jdXJyZW50ID0gc2libGluZy5yZWxlYXNlKCk7CkBAIC0xNjQsMjUgKzE1NiwyMSBAQCBOb2Rl
KiBUcmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxpbmcoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQogICAg
ICAgICB9CiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICgh
bm9kZSB8fCBub2RlID09IHJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBz
aG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwgbm9kZS5nZXQoKSk7Ci0g
ICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBzaG9ydCBhY2Nl
cHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2Vw
dE5vZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKLSAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCi1Ob2RlKiBU
cmVlV2Fsa2VyOjpuZXh0U2libGluZyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCitOb2RlKiBUcmVl
V2Fsa2VyOjpuZXh0U2libGluZygpCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJl
bnQ7CiAgICAgaWYgKG5vZGUgPT0gcm9vdCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9k
ZT4gc2libGluZyA9IG5vZGUtPm5leHRTaWJsaW5nKCk7IHNpYmxpbmc7ICkgewotICAgICAgICAg
ICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3RhdGUsIHNpYmxpbmcuZ2V0
KCkpOwotICAgICAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1
bHQgPSBhY2NlcHROb2RlKHNpYmxpbmcuZ2V0KCkpOwogICAgICAgICAgICAgc3dpdGNoIChhY2Nl
cHROb2RlUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgY2FzZSBOb2RlRmlsdGVyOjpGSUxURVJf
QUNDRVBUOgogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnQgPSBzaWJsaW5nLnJlbGVhc2Uo
KTsKQEAgLTIwMSwzMSArMTg5LDI1IEBAIE5vZGUqIFRyZWVXYWxrZXI6Om5leHRTaWJsaW5nKEpT
Qzo6RXhlY1N0YXRlKiBzdGF0ZSkKICAgICAgICAgfQogICAgICAgICBub2RlID0gbm9kZS0+cGFy
ZW50Tm9kZSgpOwogICAgICAgICBpZiAoIW5vZGUgfHwgbm9kZSA9PSByb290KCkpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5v
ZGUoc3RhdGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUobm9kZS5n
ZXQoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRF
Ul9BQ0NFUFQpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIH0KIAotTm9kZSogVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6OnByZXZpb3VzTm9kZSgpCiB7CiAgICAg
UmVmUHRyPE5vZGU+IG5vZGUgPSBtX2N1cnJlbnQ7CiAgICAgd2hpbGUgKG5vZGUgIT0gcm9vdCgp
KSB7CiAgICAgICAgIHdoaWxlIChOb2RlKiBwcmV2aW91c1NpYmxpbmcgPSBub2RlLT5wcmV2aW91
c1NpYmxpbmcoKSkgewogICAgICAgICAgICAgbm9kZSA9IHByZXZpb3VzU2libGluZzsKLSAgICAg
ICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdl
dCgpKTsKLSAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVz
dWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgICAgIGlmIChhY2NlcHROb2Rl
UmVzdWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICB3aGlsZSAoTm9kZSogbGFzdENoaWxkID0gbm9kZS0+bGFzdENo
aWxkKCkpIHsKICAgICAgICAgICAgICAgICBub2RlID0gbGFzdENoaWxkOwotICAgICAgICAgICAg
ICAgIGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHROb2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAg
ICAgICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICBhY2NlcHROb2RlUmVzdWx0
ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0Tm9k
ZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfUkVKRUNUKQogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTIzNSwyOSArMjE3LDI1IEBAIE5vZGUqIFRyZWVX
YWxrZXI6OnByZXZpb3VzTm9kZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUgPT0gcm9vdCgpKQotICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgQ29udGFpbmVyTm9k
ZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAoIXBhcmVudCkKLSAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
IG5vZGUgPSBwYXJlbnQ7Ci0gICAgICAgIHNob3J0IGFjY2VwdE5vZGVSZXN1bHQgPSBhY2NlcHRO
b2RlKHN0YXRlLCBub2RlLmdldCgpKTsKLSAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLT5oYWRF
eGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBzaG9ydCBhY2NlcHRO
b2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShub2RlLmdldCgpKTsKICAgICAgICAgaWYgKGFjY2VwdE5v
ZGVSZXN1bHQgPT0gTm9kZUZpbHRlcjo6RklMVEVSX0FDQ0VQVCkKICAgICAgICAgICAgIHJldHVy
biBzZXRDdXJyZW50KG5vZGUucmVsZWFzZSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLU5vZGUqIFRyZWVXYWxrZXI6Om5leHROb2RlKEpTQzo6RXhl
Y1N0YXRlKiBzdGF0ZSkKK05vZGUqIFRyZWVXYWxrZXI6Om5leHROb2RlKCkKIHsKICAgICBSZWZQ
dHI8Tm9kZT4gbm9kZSA9IG1fY3VycmVudDsKIENoaWxkcmVuOgogICAgIHdoaWxlIChOb2RlKiBm
aXJzdENoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgIG5vZGUgPSBmaXJzdENo
aWxkOwotICAgICAgICBzaG9ydCBhY2NlcHROb2RlUmVzdWx0ID0gYWNjZXB0Tm9kZShzdGF0ZSwg
bm9kZS5nZXQoKSk7Ci0gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+aGFkRXhjZXB0aW9uKCkp
Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJl
c3VsdCA9IGFjY2VwdE5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVz
dWx0ID09IE5vZGVGaWx0ZXI6OkZJTFRFUl9BQ0NFUFQpCiAgICAgICAgICAgICByZXR1cm4gc2V0
Q3VycmVudChub2RlLnJlbGVhc2UoKSk7CiAgICAgICAgIGlmIChhY2NlcHROb2RlUmVzdWx0ID09
IE5vZGVGaWx0ZXI6OkZJTFRFUl9SRUpFQ1QpCkBAIC0yNjUsOSArMjQzLDcgQEAgQ2hpbGRyZW46
CiAgICAgfQogICAgIHdoaWxlIChOb2RlKiBuZXh0U2libGluZyA9IE5vZGVUcmF2ZXJzYWw6Om5l
eHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCByb290KCkpKSB7CiAgICAgICAgIG5vZGUgPSBuZXh0
U2libGluZzsKLSAgICAgICAgc2hvcnQgYWNjZXB0Tm9kZVJlc3VsdCA9IGFjY2VwdE5vZGUoc3Rh
dGUsIG5vZGUuZ2V0KCkpOwotICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPmhhZEV4Y2VwdGlv
bigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHNob3J0IGFjY2VwdE5v
ZGVSZXN1bHQgPSBhY2NlcHROb2RlKG5vZGUuZ2V0KCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9k
ZVJlc3VsdCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBUKQogICAgICAgICAgICAgcmV0dXJu
IHNldEN1cnJlbnQobm9kZS5yZWxlYXNlKCkpOwogICAgICAgICBpZiAoYWNjZXB0Tm9kZVJlc3Vs
dCA9PSBOb2RlRmlsdGVyOjpGSUxURVJfU0tJUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oCmluZGV4
IGM0NDBjMjk2Y2M2NzUzNjUwMjllNTQ2MDc3Y2EzMmI3N2YwNjRjNGQuLjZhM2ZlNzE2OGYwNDg1
ZDNlYThmZTc0NmJjMGU3MTY0MGExN2M2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaApAQCAt
NDUsMjMgKzQ1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogY3VycmVu
dE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQuZ2V0KCk7IH0KICAgICAgICAgdm9pZCBz
ZXRDdXJyZW50Tm9kZShQYXNzUmVmUHRyPE5vZGU+LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICAg
ICAgTm9kZSogcGFyZW50Tm9kZShKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBmaXJz
dENoaWxkKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIGxhc3RDaGlsZChKU0M6OkV4
ZWNTdGF0ZSopOwotICAgICAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcoSlNDOjpFeGVjU3RhdGUq
KTsKLSAgICAgICAgTm9kZSogbmV4dFNpYmxpbmcoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAg
Tm9kZSogcHJldmlvdXNOb2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0gICAgICAgIE5vZGUqIG5leHRO
b2RlKEpTQzo6RXhlY1N0YXRlKik7Ci0KLSAgICAgICAgLy8gRG8gbm90IGNhbGwgdGhlc2UgZnVu
Y3Rpb25zLiBUaGV5IGFyZSBqdXN0IHNjYWZmb2xkaW5nIHRvIHN1cHBvcnQgdGhlIE9iamVjdGl2
ZS1DIGJpbmRpbmdzLgotICAgICAgICAvLyBUaGV5IG9wZXJhdGUgaW4gdGhlIG1haW4gdGhyZWFk
IG5vcm1hbCB3b3JsZCwgYW5kIHRoZXkgc3dhbGxvdyBKUyBleGNlcHRpb25zLgotICAgICAgICBO
b2RlKiBwYXJlbnROb2RlKCkgeyByZXR1cm4gcGFyZW50Tm9kZShleGVjU3RhdGVGcm9tTm9kZSht
YWluVGhyZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAgICAgICAgTm9k
ZSogZmlyc3RDaGlsZCgpIHsgcmV0dXJuIGZpcnN0Q2hpbGQoZXhlY1N0YXRlRnJvbU5vZGUobWFp
blRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAgIE5vZGUq
IGxhc3RDaGlsZCgpIHsgcmV0dXJuIGxhc3RDaGlsZChleGVjU3RhdGVGcm9tTm9kZShtYWluVGhy
ZWFkTm9ybWFsV29ybGQoKSwgbV9jdXJyZW50LmdldCgpKSk7IH0KLSAgICAgICAgTm9kZSogcHJl
dmlvdXNTaWJsaW5nKCkgeyByZXR1cm4gcHJldmlvdXNTaWJsaW5nKGV4ZWNTdGF0ZUZyb21Ob2Rl
KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQotICAgICAgICBO
b2RlKiBuZXh0U2libGluZygpIHsgcmV0dXJuIG5leHRTaWJsaW5nKGV4ZWNTdGF0ZUZyb21Ob2Rl
KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBtX2N1cnJlbnQuZ2V0KCkpKTsgfQotICAgICAgICBO
b2RlKiBwcmV2aW91c05vZGUoKSB7IHJldHVybiBwcmV2aW91c05vZGUoZXhlY1N0YXRlRnJvbU5v
ZGUobWFpblRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9Ci0gICAgICAg
IE5vZGUqIG5leHROb2RlKCkgeyByZXR1cm4gbmV4dE5vZGUoZXhlY1N0YXRlRnJvbU5vZGUobWFp
blRocmVhZE5vcm1hbFdvcmxkKCksIG1fY3VycmVudC5nZXQoKSkpOyB9CisgICAgICAgIE5vZGUq
IHBhcmVudE5vZGUoKTsKKyAgICAgICAgTm9kZSogZmlyc3RDaGlsZCgpOworICAgICAgICBOb2Rl
KiBsYXN0Q2hpbGQoKTsKKyAgICAgICAgTm9kZSogcHJldmlvdXNTaWJsaW5nKCk7CisgICAgICAg
IE5vZGUqIG5leHRTaWJsaW5nKCk7CisgICAgICAgIE5vZGUqIHByZXZpb3VzTm9kZSgpOworICAg
ICAgICBOb2RlKiBuZXh0Tm9kZSgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgVHJlZVdhbGtl
cihQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csIFBhc3NSZWZQdHI8
Tm9kZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVdhbGtlci5pZGwKaW5kZXggMjYzYWVmYTQ5MDI5NWY0MGMwYmNiOWFkZWVlMGZlNzhkNDBlNjJj
Zi4uNDgwOWVlM2Q0ZjFkMWZkNDA4NWUxYTExOTczYThkZjQwMjBlNDcxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlV2Fsa2VyLmlkbApAQCAtMjksMTIgKzI5LDEyIEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAgIAogICAgIFtTZXR0ZXJS
YWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2RlOwogCi0gICAgW0NhbGxX
aXRoPVNjcmlwdFN0YXRlXSBOb2RlIHBhcmVudE5vZGUoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0
U3RhdGVdIE5vZGUgZmlyc3RDaGlsZCgpOwotICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9k
ZSBsYXN0Q2hpbGQoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcHJldmlvdXNT
aWJsaW5nKCk7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIG5leHRTaWJsaW5nKCk7
Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIHByZXZpb3VzTm9kZSgpOwotICAgIFtD
YWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBuZXh0Tm9kZSgpOworICAgIE5vZGUgcGFyZW50Tm9k
ZSgpOworICAgIE5vZGUgZmlyc3RDaGlsZCgpOworICAgIE5vZGUgbGFzdENoaWxkKCk7CisgICAg
Tm9kZSBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICBOb2RlIG5leHRTaWJsaW5nKCk7CisgICAgTm9k
ZSBwcmV2aW91c05vZGUoKTsKKyAgICBOb2RlIG5leHROb2RlKCk7CiB9OwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzE4
ZTJlYjExMTgzYjA2ZjhjOTY5ZGY2YzMwNThiNTI5NDFiMjE5Yy4uYzYyYzA3NDY0YzlmZTc2OGU3
MDcwOTdiODYyMmQ5ZDRkOTMyNGRiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE1LTA5LTAx
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZUZpbHRlciBz
aG91bGQgYmUgYSBjYWxsYmFjayBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODQxNQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
cmV5IEdhcmVuLgorCisgICAgICAgICogZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZp
bHRlci1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUsIHRoZSBuZXcgZXhjZXB0aW9u
IG1lc3NhZ2UgaXMgZGlmZmVyZW50IGJ1dCB0aGUgZXhjZXB0aW9uCisgICAgICAgIHR5cGUgaXMg
dGhlIHNhbWUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL2NvbnN0YW50cy5odG1sOgorICAgICAgICBTdG9wIGNoZWNraW5n
IGZvciBjb25zdGFudHMgb24gTm9kZUZpbHRlciBpbnN0YW5jZXMgYXMgdGhvc2UgYXJlIG5vdwor
ICAgICAgICBGdW5jdGlvbnMgKGltcGxlbWVudGVkIGJ5IHRoZSBKYXZhU2NyaXB0KS4gVGhvc2Ug
Y29uc3RhbnRzIGFyZSBvbgorICAgICAgICB3aW5kb3cuTm9kZUZpbHRlciBzdGlsbC4gSSB2ZXJp
ZmllZCB0aGF0IHRoaXMgaXMgY29uc2lzdGFudCB3aXRoCisgICAgICAgIEZpcmVmb3guCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWw6CisgICAgICAgIFVwZGF0
ZSB0aGUgY2hlY2sgdG8gdmVyaWZ5IHRoYXQgdGhlIHByb3RvdHlwZSBvZiBhIE5vZGVGaWx0ZXIg
aW5zdGFuY2UKKyAgICAgICAgaXMgdGhlIEZ1bmN0aW9uIHByb3RvdHlwZSwgbm90IHRoZSBOb2Rl
RmlsdGVyIHByb3RvdHlwZS4gTm9kZUZpbHRlcgorICAgICAgICBzaG91bGQgbm90IGhhdmUgYSBw
cm90b3R5cGUgYXMgaXQgaXMgYSBjYWxsYmFjayBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sOgorICAgICAgICBQYXNzIG51bGwgZm9yIHRoZSBmaWx0
ZXIgYXJndW1lbnQgaW5zdGVhZCBvZiAwLiBUaGUgZnVuY3Rpb25zIGV4cGVjdAorICAgICAgICBh
IG51bGxhYmxlIE5vZGVGaWx0ZXIgb2JqZWN0LiBQYXNzaW5nIDAgaGVyZSB0aHJvd3MuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0OgorICAg
ICAgICBSZWJhc2VsaW5lLiB3aW5kb3cuTm9kZUZpbHRlciBubyBsb25nZXIgaGFzIGEgcHJvdG90
eXBlLiBUaGlzIGlzIGJlY2F1c2UKKyAgICAgICAgY2FsbGJhY2sgaW50ZXJmYWNlcyBhcmUgbm90
IHN1cHBvc2VkIHRvIGhhdmUgYSBwcm90b3R5cGUgcHJvcGVydHksIGFzCisgICAgICAgIHBlciB0
aGUgV2ViIElETCBzcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwczovL2hleWNhbS5naXRodWIu
aW8vd2ViaWRsLyNpbnRlcmZhY2UtcHJvdG90eXBlLW9iamVjdAorCisgICAgICAgIEkgYWxzbyB2
ZXJpZmllZCB0aGF0IHRoaXMgaXMgY29uc2lzdGVudCB3aXRoIEZpcmVmb3guCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2Fs
L1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIFczQyB0ZXN0cy4g
V2UgYXJlIG5vdyBwYXNzaW5nIGEgbG90IG9mIGNoZWNrcyBiZWNhdXNlIHRoZXkKKyAgICAgICAg
Y2hlY2sgdGhhdCBUcmVlV2Fsa2VyLmZpbHRlciAvIE5vZGVJdGVyYXRvci5maWx0ZXIgaXMgYSBG
dW5jdGlvbi4KKworICAgICAgICAqIHRyYXZlcnNhbC9zaXplLXplcm8tcnVuLmh0bWw6CisgICAg
ICAgIEZpeCB0aGUgdGVzdCB0byBwYXNzIGEgbnVsbCBub2RlIGZpbHRlciBpbnN0ZWFkIG9mIE5v
ZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVC4KKyAgICAgICAgVGhlIGNhbGwgd2FzIG5vdCB2YWxpZCBh
bmQgbm93IGNvcnJlY3RseSB0aHJvd3MuIFRoZSBKUyBpcyBzdXBwb3NlZCB0byBwYXNzCisgICAg
ICAgIGluIGEgbnVsbGFibGUgTm9kZUZpbHRlciwgbm90IGEgY29uc3RhbnQuIEkgdGhpbmsgdGhl
IGNvZGUgbWVhbnQgdG8gc2F5CisgICAgICAgICJmdW5jdGlvbigpIHsgcmV0dXJuIE5vZGVGaWx0
ZXIuRklMVEVSX0FDQ0VQVDsgfSIsIGhvd2V2ZXIsIEkgdXNlZCBudWxsIGFzCisgICAgICAgIGl0
IGlzIHNob3J0ZXIgYW5kIGVxdWl2YWxlbnQuCisKIDIwMTUtMDktMDEgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBhaW50IGNsZWFudXA6CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGNhNWRhODQxYjc4MmIzM2ZmZTkzYmYwYTQ5Y2NmODdlMjQ1
ZmRkM2IuLmVlN2QyMWE2ZmZiNzk3NWYyZjkxMzBkNGIzYTQwYTQyNmM1YjQ0YWIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9k
ZS1maWx0ZXItZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAgUEFTUyB3YWxrZXIuZmly
c3RDaGlsZCgpOyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwogUEFTUyB3YWxrZXIubmV4
dE5vZGUoKTsgd2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAogVGVzdGluZyB3aXRoIG9i
amVjdCBsYWNraW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQo
KTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3Qg
aGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyB3YWxrZXIuY3VycmVu
dE5vZGUuaWQ7IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTm9kZUZpbHRlciBvYmplY3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHRO
b2RlIGZ1bmN0aW9uLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9v
dCcKIAogVGVzdGluZyB3aXRoIG9iamVjdCB3aXRoIG5vbi1mdW5jdGlvbiBhY2NlcHROb2RlIHBy
b3BlcnR5Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vZGVGaWx0ZXIgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlv
bi4KK1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcKLVBBU1Mg
d2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vZGVGaWx0ZXIg
b2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gYWNjZXB0Tm9kZSBmdW5jdGlvbi4KK1BBU1Mgd2Fsa2Vy
Lm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNT
IHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rpbmcgd2l0aCBmdW5jdGlv
biBoYXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0
YW50cy1leHBlY3RlZC50eHQKaW5kZXggNDdmYzViMmJjODEzYmNmYTVhYzJlNzUxOTk1Zjk5MzY2
Yjc3MjNiOC4uYmZkNjU3MDU1NGEyNzk5MWQ1N2FkNTE4NjM4NjRlMjA5M2RlOTU1ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC0yNCwyMiArMjQs
NiBAQCBQQVNTOiB3aW5kb3cuQ1NTVmFsdWUuQ1NTX0lOSEVSSVQgc2hvdWxkIGJlIDAgYW5kIGlz
LgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19QUklNSVRJVkVfVkFMVUUgc2hvdWxkIGJlIDEg
YW5kIGlzLgogUEFTUzogd2luZG93LkNTU1ZhbHVlLkNTU19WQUxVRV9MSVNUIHNob3VsZCBiZSAy
IGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5DU1NWYWx1ZS5DU1NfQ1VTVE9NIHNob3VsZCBiZSAzIGFu
ZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCBzaG91bGQgYmUgMSBhbmQgaXMu
Ci1QQVNTOiBub2RlRmlsdGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFT
Uzogbm9kZUZpbHRlci5GSUxURVJfU0tJUCBzaG91bGQgYmUgMyBhbmQgaXMuCi1QQVNTOiBub2Rl
RmlsdGVyLlNIT1dfQUxMIHNob3VsZCBiZSA0Mjk0OTY3Mjk1IGFuZCBpcy4KLVBBU1M6IG5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHNob3VsZCBiZSAxIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUgc2hvdWxkIGJlIDIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9X
X1RFWFQgc2hvdWxkIGJlIDQgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0NEQVRBX1NF
Q1RJT04gc2hvdWxkIGJlIDggYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0VOVElUWV9S
RUZFUkVOQ0Ugc2hvdWxkIGJlIDE2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19FTlRJ
VFkgc2hvdWxkIGJlIDMyIGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19QUk9DRVNTSU5H
X0lOU1RSVUNUSU9OIHNob3VsZCBiZSA2NCBhbmQgaXMuCi1QQVNTOiBub2RlRmlsdGVyLlNIT1df
Q09NTUVOVCBzaG91bGQgYmUgMTI4IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCBzaG91bGQgYmUgMjU2IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VF9UWVBFIHNob3VsZCBiZSA1MTIgYW5kIGlzLgotUEFTUzogbm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5UX0ZSQUdNRU5UIHNob3VsZCBiZSAxMDI0IGFuZCBpcy4KLVBBU1M6IG5vZGVGaWx0ZXIuU0hP
V19OT1RBVElPTiBzaG91bGQgYmUgMjA0OCBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuTm9kZUZpbHRl
ci5GSUxURVJfQUNDRVBUIHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5Ob2RlRmls
dGVyLkZJTFRFUl9SRUpFQ1Qgc2hvdWxkIGJlIDIgYW5kIGlzLgogUEFTUzogd2luZG93Lk5vZGVG
aWx0ZXIuRklMVEVSX1NLSVAgc2hvdWxkIGJlIDMgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vY29uc3RhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25z
dGFudHMuaHRtbAppbmRleCBkY2UyNTg4OTQzYWMwNThkYzJiMTljYTMwZWQ3MzAwYTc2OGYwZTAx
Li4xOTViYmNkOWU2NTc2ZTM0ODUxZjc3YjVlNTExOWNhODE4MGZmNzg3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdGFudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9jb25zdGFudHMuaHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShh
LCBiKQogICAgIHByaW50KG1lc3NhZ2UsIGNvbG9yKTsKIH0KIAotdmFyIGNzc1J1bGUsIGNzc1Zh
bHVlLCBub2RlRmlsdGVyLCBldmVudDsKK3ZhciBjc3NSdWxlLCBjc3NWYWx1ZSwgZXZlbnQ7CiAK
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpAQCAtNjYsMzQg
KzY2LDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzaG91bGRCZSgid2luZG93LkNTU1ZhbHVl
LkNTU19WQUxVRV9MSVNUIiwgMik7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5DU1NWYWx1ZS5DU1Nf
Q1VTVE9NIiwgMyk7CiAKLSAgICB2YXIgbm9kZUl0ZXJhdG9yOwotICAgIHRyeSB7Ci0gICAgICAg
IG5vZGVJdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7IHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NF
UFQ7IH0sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmFsc2UpOwotICAgIH0gY2F0Y2goZSkgewotICAgICAgICBub2RlSXRlcmF0b3IgPSBuZXcg
T2JqZWN0KCk7Ci0gICAgfQotICAgIAotICAgIG5vZGVGaWx0ZXIgPSBub2RlSXRlcmF0b3IuZmls
dGVyOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQiLCAxKTsKLSAgICBz
aG91bGRCZSgibm9kZUZpbHRlci5GSUxURVJfUkVKRUNUIiwgMik7Ci0gICAgc2hvdWxkQmUoIm5v
ZGVGaWx0ZXIuRklMVEVSX1NLSVAiLCAzKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9X
X0FMTCIsIDB4RkZGRkZGRkYpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCIsIDB4MDAwMDAwMDEpOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
IiwgMHgwMDAwMDAwMik7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19URVhUIiwgMHgw
MDAwMDAwNCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OIiwg
MHgwMDAwMDAwOCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFlfUkVGRVJF
TkNFIiwgMHgwMDAwMDAxMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19FTlRJVFki
LCAweDAwMDAwMDIwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX1BST0NFU1NJTkdf
SU5TVFJVQ1RJT04iLCAweDAwMDAwMDQwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9X
X0NPTU1FTlQiLCAweDAwMDAwMDgwKTsKLSAgICBzaG91bGRCZSgibm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5UIiwgMHgwMDAwMDEwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVF9UWVBFIiwgMHgwMDAwMDIwMCk7Ci0gICAgc2hvdWxkQmUoIm5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVF9GUkFHTUVOVCIsIDB4MDAwMDA0MDApOwotICAgIHNob3VsZEJlKCJub2RlRmlsdGVy
LlNIT1dfTk9UQVRJT04iLCAweDAwMDAwODAwKTsKLQogICAgIHNob3VsZEJlKCJ3aW5kb3cuTm9k
ZUZpbHRlci5GSUxURVJfQUNDRVBUIiwgMSk7CiAgICAgc2hvdWxkQmUoIndpbmRvdy5Ob2RlRmls
dGVyLkZJTFRFUl9SRUpFQ1QiLCAyKTsKICAgICBzaG91bGRCZSgid2luZG93Lk5vZGVGaWx0ZXIu
RklMVEVSX1NLSVAiLCAzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMuaHRtbAppbmRleCA5N2QyZmFkYmRlOWUxOGEwZTkwOWQ4MzcyOWZjN2U1OTc4Y2VkNmNl
Li4wYjM5ZGQwNzAzMzZlMWMzODk2ZDg3MGY5OTdkZTlmODk0N2FkMDVjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy5odG1sCkBAIC04NSw3ICs4NSw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIHRyeSB7CiAgICAgICBub2RlRmlsdGVyID0gZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgZnVu
Y3Rpb24gKCkge30sIGZhbHNlKS5maWx0ZXI7CiAgICAgfSBjYXRjaChlKSB7fQotICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuTm9kZUZpbHRlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihub2RlRmlsdGVy
KSIsIHRydWUpOworICAgIHNob3VsZEJlKCJGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVP
Zihub2RlRmlsdGVyKSIsIHRydWUpOwogCiAgICAgb3JpZ2luYWxOb2RlUHJvdG90eXBlID0gd2lu
ZG93Lk5vZGUucHJvdG90eXBlOwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vbm9kZS1maWx0ZXItZ2MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVy
LWdjLmh0bWwKaW5kZXggMDY0OWFkMjE4YmU5ZGZhYTE5NzNjZGM3NTYwNzE1ZjRiZWZmYWY4Zi4u
YTIwNGM0NGJmM2YzY2Q1ODA5YzRiMDJlYWUwYzQ0NTljMjcwNTYwMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0ZXItZ2MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9ub2RlLWZpbHRlci1nYy5odG1sCkBAIC0zLDggKzMsOCBAQAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIAotdmFyIGl0ZXJh
dG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgMCwgZmFsc2UpOwotdmFyIHdhbGtlciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAwLCBmYWxzZSk7Cit2YXIg
aXRlcmF0b3IgPSBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBudWxsLCBmYWxzZSk7Cit2YXIgd2Fsa2VyID0gZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwsIGZh
bHNlKTsKIAogLy8gY3JlYXRlIGxvdHMgb2Ygb2JqZWN0cyB0byBmb3JjZSBhIGdhcmJhZ2UgY29s
bGVjdGlvbgogIHZhciBpID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25v
ZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9u
b2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CmluZGV4IDVlNTQ2ODZmYWEzYzdhZjM2
YWRiNWIxMTZmODI1ZGIxY2M2ZjcyYzcuLmQ0YTk4YzhlNDI1MjUwOWQyZTNiNmUwYWFkYWE3ZmI2
ZWY1NmRiY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWlu
dGVyZmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1maWx0
ZXItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMzksOCArMzksNiBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURQogW0NvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRh
YmxlOiBmYWxzZSwgdmFsdWU6IDBdCiAqIG5hbWUKIFtDb25maWd1cmFibGU6IHRydWUsIGVudW1l
cmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiBOb2RlRmlsdGVyXQotKiBwcm90
b3R5cGUKLVtDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6
IGZhbHNlLCB2YWx1ZTogW29iamVjdCBOb2RlRmlsdGVyUHJvdG90eXBlXV0KIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDgy
MjI0OTI4MGI5MWU0Yjg5ODFjODY0ZWYyMGNhODY0N2M5MjdiZTYuLjdkNDA4NzJjYzZmMTgzMjdi
YWJjMTg0YjU4OGY0NTc3ZjhhMDczY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTE4OTAsNDEgKzE4OTAs
NDEgQEAgUEFTUyBUcmVlV2Fsa2VyIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudC5ib2R5LCBOb2RlRmlsdGVyLlMKIFBBU1MgVHJlZVdhbGtlciBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQuYm9keSwgTm9kZUZpbHRlci5TSE9X
X0FMTCwgbnVsbCwgZmFsc2UpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJldmlvdXNOb2RlIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoOSkgCiBQQVNTIFRyZWVXYWxrZXIgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LmJvZHksIE5vZGVGaWx0ZXIuU0hPV19BTEws
IG51bGwsIGZhbHNlKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5leHROb2RlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoMTApIAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUi
IHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9mYWxzZTogTm9kZUZpbHRlciBzaG91
bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1
ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
ImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0
YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IEZJTFRFUl9BQ0NFUFQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5
cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50
ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfQUNDRVBUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1JFSkVDVCBv
biBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQg
RklMVEVSX1JFSkVDVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6
IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0
ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IEZJ
TFRFUl9SRUpFQ1Qgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2Ugb2JqZWN0IAot
RkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgRklMVEVSX1NLSVAgb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3Qg
aGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBGSUxURVJfU0tJUCBvbiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNI
T1dfQUxMIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBj
b25zdGFudCBTSE9XX0FMTCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFs
c2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhw
ZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50
IFNIT1dfQUxMIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVy
IGludGVyZmFjZTogY29uc3RhbnQgU0hPV19FTEVNRU5UIG9uIGludGVyZmFjZSBvYmplY3QgCi1G
QUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3Qg
aGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VMRU1FTlQgb24gaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBT
SE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVy
ZmFjZTogY29uc3RhbnQgU0hPV19BVFRSSUJVVEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUi
IHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX0FUVFJJQlVURSBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfVEVYVCBvbiBpbnRl
cmZhY2Ugb2JqZWN0IAotRkFJTCBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19U
RVhUIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9kZUZpbHRl
ciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19URVhUIG9u
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTog
Y29uc3RhbnQgU0hPV19DREFUQV9TRUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5v
ZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24gaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3Qg
aGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNT
IE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0NEQVRBX1NFQ1RJT04gb24gaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25z
dGFudCBTSE9XX0VOVElUWV9SRUZFUkVOQ0Ugb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBvbiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5v
dCBoYXZlIGEgInByb3RvdHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BB
U1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZX1JFRkVSRU5DRSBv
biBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6
IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0
ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0VOVElUWSBvbiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3Rv
dHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRU5USVRZIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAogUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19QUk9DRVNTSU5H
X0lOU1RSVUNUSU9OIG9uIGludGVyZmFjZSBvYmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJm
YWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24gaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBh
ICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVG
aWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gb24g
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBj
b25zdGFudCBTSE9XX0NPTU1FTlQgb24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRl
ciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3Rv
dHlwZSIgcHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBp
bnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfQ09NTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCAKIFBBU1MgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfRE9DVU1FTlQg
b24gaW50ZXJmYWNlIG9iamVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50
IFNIT1dfRE9DVU1FTlQgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNl
OiBOb2RlRmlsdGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVj
dGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBT
SE9XX0RPQ1VNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBOb2RlRmls
dGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19ET0NVTUVOVF9UWVBFIG9uIGludGVyZmFjZSBv
YmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5U
X1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmls
dGVyIHNob3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VN
RU5UX1RZUEUgb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCiBQQVNTIE5vZGVGaWx0ZXIg
aW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIG9uIGludGVyZmFjZSBv
YmplY3QgCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBjb25zdGFudCBTSE9XX0RPQ1VNRU5U
X0ZSQUdNRU5UIG9uIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9mYWxzZTogTm9k
ZUZpbHRlciBzaG91bGQgbm90IGhhdmUgYSAicHJvdG90eXBlIiBwcm9wZXJ0eSBleHBlY3RlZCBm
YWxzZSBnb3QgdHJ1ZQorUEFTUyBOb2RlRmlsdGVyIGludGVyZmFjZTogY29uc3RhbnQgU0hPV19E
T0NVTUVOVF9GUkFHTUVOVCBvbiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgTm9k
ZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIG9i
amVjdCAKLUZBSUwgTm9kZUZpbHRlciBpbnRlcmZhY2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04g
b24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2ZhbHNlOiBOb2RlRmlsdGVyIHNo
b3VsZCBub3QgaGF2ZSBhICJwcm90b3R5cGUiIHByb3BlcnR5IGV4cGVjdGVkIGZhbHNlIGdvdCB0
cnVlCi1GQUlMIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShOb2Rl
KSBhc3NlcnRfZmFsc2U6IE5vZGVGaWx0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgInByb3RvdHlwZSIg
cHJvcGVydHkgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgTm9kZUZpbHRlciBpbnRlcmZh
Y2U6IGNvbnN0YW50IFNIT1dfTk9UQVRJT04gb24gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
CitQQVNTIE5vZGVGaWx0ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gYWNjZXB0Tm9kZShOb2RlKSAK
IEZBSUwgRE9NVG9rZW5MaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIERPTVRva2Vu
TGlzdCBleHBlY3RlZCAiW29iamVjdCBGdW5jdGlvbl0iIGJ1dCBnb3QgIltvYmplY3QgRE9NVG9r
ZW5MaXN0Q29uc3RydWN0b3JdIgogUEFTUyBET01Ub2tlbkxpc3QgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGggCiBQQVNTIERPTVRva2VuTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVUcmVlV2Fsa2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS9ub2Rlcy9Eb2N1bWVu
dC1jcmVhdGVUcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAppbmRleCA3MmVhZDUzMjllZjkzZDE4ZmIz
MjI2MjAxODFlYmI3Mjg3Y2FlYzJlLi4zOGVmMDA4YzA0YmEwZmIwZTBjMmJmMTU0Mzk2MTQ2YzFh
MDkxMWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vbm9kZXMv
RG9jdW1lbnQtY3JlYXRlVHJlZVdhbGtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2MvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVRyZWVXYWxrZXItZXhwZWN0
ZWQudHh0CkBAIC0zLDUgKzMsNSBAQCBQQVNTIFJlcXVpcmVkIGFyZ3VtZW50cyB0byBjcmVhdGVU
cmVlV2Fsa2VyIHNob3VsZCBiZSByZXF1aXJlZC4KIFBBU1MgT3B0aW9uYWwgYXJndW1lbnRzIHRv
IGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgxIHBhc3NlZCkuIAogUEFTUyBP
cHRpb25hbCBhcmd1bWVudHMgdG8gY3JlYXRlVHJlZVdhbGtlciBzaG91bGQgYmUgb3B0aW9uYWwg
KDIgcGFzc2VkKS4gCiBQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2Vy
IHNob3VsZCBiZSBvcHRpb25hbCAoMyBwYXNzZWQsIG51bGwpLiAKLUZBSUwgT3B0aW9uYWwgYXJn
dW1lbnRzIHRvIGNyZWF0ZVRyZWVXYWxrZXIgc2hvdWxkIGJlIG9wdGlvbmFsICgzIHBhc3NlZCwg
ZnVuY3Rpb24pLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBjcmVhdGVUcmVlV2Fsa2VyIHNob3VsZCBi
ZSBvcHRpb25hbCAoMyBwYXNzZWQsIGZ1bmN0aW9uKS4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9y
LWV4cGVjdGVkLnR4dAppbmRleCA0ZDU5ODZjNGY0ZjE0NWJlYmQ0ZjQ1YmIwM2VkMzAzNjEzZDZj
MGVjLi44YTU2ZDdhNDI1MmQyZGYxZWVhOWM3Mzk2ODI0MmQ5ZmEzMWVlNjRlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL05vZGVJdGVyYXRvci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2MvZG9tL3RyYXZlcnNh
bC9Ob2RlSXRlcmF0b3ItZXhwZWN0ZWQudHh0CkBAIC01LDc0MyArNSw3NDMgQEAgUEFTUyBjcmVh
dGVOb2RlSXRlcmF0b3IoKSB3aXRoIG51bGwgYXMgYXJndW1lbnRzCiBGQUlMIGNyZWF0ZU5vZGVJ
dGVyYXRvcigpIHdpdGggdW5kZWZpbmVkIGFzIGFyZ3VtZW50cyBhc3NlcnRfZXF1YWxzOiB3aGF0
VG9TaG93IGV4cGVjdGVkIDQyOTQ5NjcyOTUgYnV0IGdvdCAwCiBQQVNTIFByb3BhZ2F0ZSBleGNl
cHRpb24gZnJvbSBmaWx0ZXIgZnVuY3Rpb24gCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1swXSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBd
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBd
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxk
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sw
XS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0
Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1swXS5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENo
aWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGls
ZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZG
RkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
cGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFz
WzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihw
YXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MSwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RD
aGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENo
aWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
YXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
b2N1bWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1
bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWREaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRE
aXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZERpdiwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Ms
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVp
Z25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
blBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEy
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
UGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduUGFyYTIsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvYywgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9j
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2MsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4
dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2Rl
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCAweEZG
RkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25U
ZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
VGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4
dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0
aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vz
c2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAw
eEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihjb21tZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Y29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Y29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Y29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihj
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29t
bWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21t
ZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2Zy
YWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY2ZyYWcs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5
cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdHlwZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAw
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
RG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
Zm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihwYXJhc1sxXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNb
MV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHBhcmFzWzFdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFyYXNbMV0sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IocGFy
YXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
UGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0
Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZp
cnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hp
bGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIu
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFy
YTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERp
diwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3RE
aXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IodGVzdERpdiwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih0ZXN0RGl2LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50
LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
WG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxF
bGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1s
RWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRh
Y2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2Rl
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25U
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVp
Z25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHRO
b2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWdu
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVk
Rm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRl
eHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5v
ZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9k
ZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHRO
b2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFht
bFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRY
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNo
ZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxD
b21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWdu
Q29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0
b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9y
ZWlnbkNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAw
eEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hl
ZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29t
bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihk
ZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRl
dGFjaGVkWG1sQ29tbWVudCwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0
YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENv
bW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
ZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50
LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVy
YXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFj
aGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1l
bnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21t
ZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRldGFjaGVkWG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2Zy
YWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJh
ZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihm
b3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZv
cmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRl
cmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9y
KGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3Jl
aWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGZvcmVpZ25E
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkg
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0
ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
Y2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4
bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
Tm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3Io
eG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
Y3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0
eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1s
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9k
ZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRv
cih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxE
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJh
dG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERv
Y3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVO
b2RlSXRlcmF0b3IoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoeG1sRG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZU5v
ZGVJdGVyYXRvcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
ZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1leHBlY3RlZC50eHQKaW5kZXggOWFi
ZWQzMGU3NGI1YTYwNDE1NzU5ODJlYTAyMGFhOGRjNTg0NTYyNi4uNjU1Nzg0ZGI1YmIyOGI4MTEw
NzIzZjljNTQzZGE2ZjliZWVjOTA3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2MvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItZXhwZWN0ZWQudHh0
CkBAIC0xLDc0MiArMSw3NDMgQEAKIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzBdLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sw
XSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0s
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0u
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihwYXJhc1swXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0u
Zmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMF0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1swXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzBdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJz
dENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hp
bGQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFy
YXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBh
cmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFd
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocGFyYXNbMV0uZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hp
bGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEu
Zmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEx
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVp
Z25QYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmExLmZp
cnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMS5maXJzdENoaWxk
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTEuZmlyc3RDaGls
ZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTEsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmExLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTEsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MS5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4
RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJz
dENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmExLmZpcnN0Q2hpbGQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMS5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEx
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBh
cmExLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTEuZmlyc3RDaGlsZCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVu
dCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N1bWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3Rl
ZCBUZXh0IG5vZGUgIlRyZWVXYWxrZXIgdGVzdHMiIGJ1dCBnb3QgbnVsbAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkb2N1bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRE
aXYsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCAweEZGRkZGRkZGLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWREaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4
dFNpYmxpbmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgIld4eXphYmNkIiBidXQgZ290IG51bGwKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVU
RSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRGl2LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZERp
diwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWREaXYsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Eb2MsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2Ms
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK0ZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5u
ZXh0U2libGluZygpIGV4cGVjdGVkIFRleHQgbm9kZSAiRWZnaGlqa2wiIGJ1dCBnb3QgQ29tbWVu
dCBub2RlIDwhLS0iQ29tbWVudGVyIiBhbmQgImNvbW1lbnRhdG9yIiBtZWFuIGRpZmZlcmVudCB0
aGluZ3MuICBJJ3YuLi4tLT4KIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvYywgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2MsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmEyLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
UGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blBhcmEyLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnblBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBh
cmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25QYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnblBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblBhcmEyLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2MsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZG
RkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvYywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9k
ZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3Rl
ZCBUZXh0IG5vZGUgImRvIHJlIG1pIGZhIHNvIGxhIHRpIiBidXQgZ290IENvbW1lbnQgbm9kZSA8
IS0tSSBtYWxpY2lvdXNseSBjcmVhdGVkIGEgY29tbWVudCB0aGF0IHdpbGwgYnJlYWsgaW5jYXV0
aW91Li4uLS0+CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2MsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvYywgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bEVsZW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxl
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxFbGVtZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4
dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnblRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25U
ZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2Rl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDAsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIG51
bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24s
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nl
c3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24sIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9u
LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZGRkYsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UHJvY2Vzc2luZ0luc3RydWN0aW9uLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Y29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
dHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihjb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQs
IDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1l
bnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZGRiwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihjb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihj
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRF
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihjb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZENvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFs
c2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FU
VFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJ
QlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZENvbW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNI
T1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9
PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAwLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJh
ZywgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
ZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCAweEZGRkZG
RkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
dHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2Zy
YWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFn
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBl
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9j
dHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlw
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5
cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
b2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25E
b2N0eXBlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY3R5cGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
RG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
Zm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBu
b2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jdHlwZSwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGZvcmVpZ25Eb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMCwgbnVs
bCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0s
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
cGFyYXNbMV0sIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFz
WzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
bnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNb
MV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmls
dGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVj
dCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihw
YXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9k
ZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihwYXJh
c1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIocGFyYXNbMV0sIE5vZGVGaWx0ZXIuU0hPV19F
TEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHBhcmFzWzFdLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHBhcmFzWzFdLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NV
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihwYXJhc1sxXSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2Rl
RmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMiwgMCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMiwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBm
YWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZB
SUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkUGFyYTIsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNo
ZWRQYXJhMiwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFT
UyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIDB4RkZGRkZGRkYsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJh
MiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFy
YTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0
Q2hpbGQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZG
RiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29i
amVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLmZpcnN0Q2hpbGQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
UGFyYTIuZmlyc3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5m
aXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJz
dENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RDaGlsZCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5T
SE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRh
Y2hlZFBhcmEyLmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFBhcmEy
LmZpcnN0Q2hpbGQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmlyc3RD
aGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkUGFyYTIuZmly
c3RDaGlsZCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRQYXJhMi5maXJzdENoaWxkLCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih0ZXN0RGl2LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih0ZXN0RGl2LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHRlc3REaXYsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih0ZXN0RGl2LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHRlc3REaXYsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitGQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAubmV4dFNpYmxpbmcoKSBleHBlY3RlZCBUZXh0IG5vZGUgIklqa2xtbm9w
CisiIGJ1dCBnb3QgQ29tbWVudCBub2RlIDwhLS1BbHBoYWJldCBzb3VwPy0tPgogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5v
ZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9X
X0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih0ZXN0RGl2LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIodGVzdERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRlc3REaXYsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
IHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVzdERpdiwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIodGVz
dERpdiwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVy
IGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0
cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0
ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFht
bEVsZW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCAweEZG
RkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVG
aWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0
ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZFhtbEVsZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxFbGVtZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRf
ZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChu
b2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVs
ZW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbEVsZW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sRWxlbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmls
dGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduVGV4dE5vZGUsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihk
ZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVy
XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkRm9yZWlnblRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZp
bHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1
cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0i
Ci1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIDB4RkZGRkZGRkYs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
blRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxs
KSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9k
ZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2Ug
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1l
WzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0
Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBO
b2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkRm9yZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRl
ci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9y
ZWlnblRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9X
X0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25UZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0
Tm9kZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRl
eHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHRO
b2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVsw
XSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChm
dW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2Rl
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUu
bm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4
bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5v
ZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
VGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoeG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkp
IAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCBudWxsKSAKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9u
KSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0
Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDAsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4
dE5vZGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgMHhGRkZG
RkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0i
IGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5v
ZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZpbHRl
ci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxU
ZXh0Tm9kZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVj
dCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxUZXh0Tm9kZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0
ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVb
MF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikg
ZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbFRleHROb2RlLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFj
aGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sVGV4dE5vZGUsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbENvbW1lbnQsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKHhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1l
bnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNT
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZG
RkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIDB4RkZG
RkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgMHhGRkZGRkZG
RiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBu
dWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2Vy
dF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24g
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5u
b2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAK
IFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNI
T1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxD
b21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1
bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHht
bENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cih4bWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19E
T0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVl
IH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwg
Tm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9
KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2Rl
KSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
CiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwg
MCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50
LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkp
IAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCAweEZGRkZG
RkZGLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVu
dCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9l
cXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2Vx
dWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9k
ZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09
ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0
aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihmb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1df
QVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWdu
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBm
dW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVX
YWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRS
SUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJm
dW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8
IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAi
ZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9y
ZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RP
Q1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6
IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Db21tZW50LCBOb2Rl
RmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVj
dCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBm
YWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAsIG51bGwp
IAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDAs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRl
ciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1G
QUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3Nl
cnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9u
IChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmpl
Y3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAwLCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBk
b2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZG
RkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWln
bkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBh
c3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVp
Z25Db21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhw
ZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRl
ci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0
X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAo
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBl
eHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
Tm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hl
ZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZEZv
cmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rp
b24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklC
VVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVu
dCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNv
bW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3Jl
aWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkZXRhY2hlZEZvcmVpZ25Db21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0
cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2Jq
ZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZp
bHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFz
c2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rp
b24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
Rm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9X
X0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAn
IycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1
dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkRm9yZWlnbkNvbW1lbnQsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRG
b3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRGb3JlaWduQ29tbWVudCwgTm9kZUZpbHRlci5T
SE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7
IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChvYmplY3Qp
IG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFt
ZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRl
cl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1
cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1s
Q29tbWVudCwgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1l
bnQsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRl
dGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sQ29tbWVudCwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0
dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBO
b2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENv
bW1lbnQsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BB
U1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIDB4RkZGRkZG
RkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VM
RU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1s
Q29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIg
YnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3Vt
ZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1df
RUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24g
ImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5U
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwgTm9kZUZp
bHRlci5TSE9XX0FUVFJJQlVURSwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUg
fSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29tbWVudCwg
Tm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQs
IE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2Rl
Lm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
ZGV0YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIu
U0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0
YWNoZWRYbWxDb21tZW50LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hP
V19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZGV0YWNoZWRYbWxDb21tZW50
LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4
cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxz
ZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIu
U0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0
ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVk
WG1sQ29tbWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihkZXRhY2hlZFhtbENvbW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19FTEVN
RU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
ZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRldGFjaGVkWG1sQ29t
bWVudCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQs
IChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQ
QVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDAsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3Rl
ZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlv
bikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290IChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVk
IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVO
YW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmls
dGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFs
c2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAw
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCAweEZGRkZGRkZG
LCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywg
MHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVh
bHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUp
IHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4
RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihm
b3JlaWduRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNl
IH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgMHhG
RkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMn
IH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9k
ZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNy
ZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9j
ZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJV
VEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0
ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0
aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1F
TlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVh
dGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5v
ZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkp
IGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWln
bkRvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VN
RU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5m
aWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0
dXJuIGZhbHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJd
IgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGZvcmVpZ25Eb2NmcmFnLCBOb2RlRmls
dGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5v
ZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAu
ZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJl
dHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAi
W29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihmb3Jl
aWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9D
VU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcihmb3JlaWduRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQg
fCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxz
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZm9yZWlnbkRvY2ZyYWcsIE5v
ZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rp
b24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1
bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIG51bGwpIAotRkFJTCBkb2N1bWVu
dC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fs
a2VyKHhtbERvY2ZyYWcsIDAsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJh
ZywgMCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1
ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgMCwgKGZ1
bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y2ZyYWcsIDB4RkZGRkZGRkYsIG51bGwpIAotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvY2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0p
KSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1
bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERv
Y2ZyYWcsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNz
ZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlv
biAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJh
ZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVu
Y3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jZnJhZywgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCAweEZGRkZGRkZG
LCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAog
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5ULCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2Nm
cmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlv
biAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmpl
Y3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIo
eG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJl
dHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24p
IGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2Jq
ZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVy
biB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0p
KSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVy
LlNIT1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBO
b2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCBudWxsKSAKLUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJl
ZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAo
ZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9IiBidXQg
Z290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQu
Y3JlYXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfQVRUUklCVVRFLCAo
ZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZh
bHNlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJ
TCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19B
VFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcj
JyB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9u
ICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlv
bihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIFBBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2NmcmFnLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1YWxz
OiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7
IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9k
ZSkgeyByZXR1cm4gZmFsc2UgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1
bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0iIGJ1dCBn
b3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UIHwgTm9k
ZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2Rl
TmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0
aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0g
PT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0ZXJdIgor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY2ZyYWcsIE5vZGVGaWx0ZXIuU0hP
V19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gdHJ1ZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jZnJh
ZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChm
dW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRy
ZWVXYWxrZXIoeG1sRG9jZnJhZywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVy
LlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBd
ID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwg
MCwgbnVsbCkgCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRy
dWUgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlM
IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMCwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9k
ZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5h
bWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVGaWx0
ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5j
dGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcih4bWxEb2N0eXBlLCAwLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAor
UEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIDAsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgbnVsbCkgCi1GQUlMIGRv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9u
KG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQg
KGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgMHhGRkZGRkZGRiwgKGZ1bmN0aW9uKG5vZGUp
IHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5j
dGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBmYWxzZSB9IiBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIg
ZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5jdGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5v
ZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0
IE5vZGVGaWx0ZXJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUs
IDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCAweEZGRkZGRkZGLCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvY3R5cGUsIDB4RkZGRkZGRkYsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9KSkgCiBQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIG51bGwpIAotRkFJTCBkb2N1bWVudC5j
cmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVu
Y3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkgYXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBl
Y3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gdHJ1ZSB9
IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKLUZBSUwgZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVO
VCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmls
dGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVy
biBmYWxzZSB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIK
LUZBSUwgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0g
JyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rp
b24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9IiBi
dXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2RlRmlsdGVyXSIKK1BBU1MgZG9jdW1l
bnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwg
KGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIHRydWUgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24o
bm9kZSkgeyByZXR1cm4gZmFsc2UgfSkpIAorUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2Vy
KHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULCAoZnVuY3Rpb24obm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVU
cmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hPV19BVFRSSUJVVEUsIG51bGwpIAot
RkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0ZXIuU0hP
V19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSBhc3NlcnRfZXF1
YWxzOiAuZmlsdGVyIGV4cGVjdGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2Rl
KSB7IHJldHVybiB0cnVlIH0iIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IE5vZGVG
aWx0ZXJdIgotRkFJTCBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVG
aWx0ZXIuU0hPV19BVFRSSUJVVEUsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkg
YXNzZXJ0X2VxdWFsczogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5j
dGlvbiAobm9kZSkgeyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9j
dHlwZSwgTm9kZUZpbHRlci5TSE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSBhc3NlcnRfZXF1YWxzOiAuZmlsdGVyIGV4cGVj
dGVkIChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVOYW1lWzBdID09ICcjJyB9IiBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBOb2Rl
RmlsdGVyXSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2Rl
RmlsdGVyLlNIT1dfQVRUUklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gdHJ1ZSB9KSkg
CitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5T
SE9XX0FUVFJJQlVURSwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAKK1BBU1Mg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfQVRU
UklCVVRFLCAoZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycg
fSkpIAogUEFTUyBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHhtbERvY3R5cGUsIE5vZGVGaWx0
ZXIuU0hPV19FTEVNRU5UIHwgTm9kZUZpbHRlci5TSE9XX0RPQ1VNRU5ULCBudWxsKSAKLUZBSUwg
ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxF
TUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJu
IHRydWUgfSkpIGFzc2VydF9lcXVhbHM6IC5maWx0ZXIgZXhwZWN0ZWQgKGZ1bmN0aW9uKSBmdW5j
dGlvbiAiZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIHRydWUgfSIgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgTm9kZUZpbHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxr
ZXIoeG1sRG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1df
RE9DVU1FTlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiBmYWxzZSB9KSkgYXNzZXJ0X2VxdWFs
czogLmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkg
eyByZXR1cm4gZmFsc2UgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgTm9kZUZp
bHRlcl0iCi1GQUlMIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1sRG9jdHlwZSwgTm9kZUZp
bHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1FTlQsIChmdW5jdGlvbihu
b2RlKSB7IHJldHVybiBub2RlLm5vZGVOYW1lWzBdID09ICcjJyB9KSkgYXNzZXJ0X2VxdWFsczog
LmZpbHRlciBleHBlY3RlZCAoZnVuY3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAobm9kZSkgeyBy
ZXR1cm4gbm9kZS5ub2RlTmFtZVswXSA9PSAnIycgfSIgYnV0IGdvdCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgTm9kZUZpbHRlcl0iCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoeG1s
RG9jdHlwZSwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQgfCBOb2RlRmlsdGVyLlNIT1dfRE9DVU1F
TlQsIChmdW5jdGlvbihub2RlKSB7IHJldHVybiB0cnVlIH0pKSAKK1BBU1MgZG9jdW1lbnQuY3Jl
YXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVG
aWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsgcmV0dXJuIGZhbHNlIH0pKSAK
K1BBU1MgZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih4bWxEb2N0eXBlLCBOb2RlRmlsdGVyLlNI
T1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19ET0NVTUVOVCwgKGZ1bmN0aW9uKG5vZGUpIHsg
cmV0dXJuIG5vZGUubm9kZU5hbWVbMF0gPT0gJyMnIH0pKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdHJhdmVyc2FsL3NpemUtemVyby1ydW4uaHRtbCBiL0xheW91dFRlc3RzL3RyYXZlcnNh
bC9zaXplLXplcm8tcnVuLmh0bWwKaW5kZXggYzY3YjIyYjQ5MTUyYTRhOTZjYzQzYTRmYzQ5MDJj
MjM1ZWI3M2VkNy4uMzViNTRjNmQ0MTQ2YzJhMWFmYjA5NjljZDVhZDA5MTk0Yzc2Nzg2NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL3NpemUtemVyby1ydW4uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy90cmF2ZXJzYWwvc2l6ZS16ZXJvLXJ1bi5odG1sCkBAIC0xMSw3ICsxMSw3IEBA
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgdGV4dG5vZGUyLm5vZGVWYWx1ZSA9ICIiOwogICAgIAog
ICAgIHZhciByb290ID0gZG9jdW1lbnQuYm9keTsKLSAgICB2YXIgaXQgPSBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3Iocm9vdCwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIE5vZGVGaWx0ZXIu
RklMVEVSX0FDQ0VQVCwgZmFsc2UpOworICAgIHZhciBpdCA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJ
dGVyYXRvcihyb290LCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgbnVsbCwgZmFsc2UpOwogCiAg
ICAgdmFyIG4gPSBpdC5uZXh0Tm9kZSgpOwogICAgIHdoaWxlKG4pIHsKQEAgLTI4LDQgKzI4LDQg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKIDxwPkEgY3Jhc2ggd291bGQgb2NjdXIgb24gaXRlcmF0aW9u
IG92ZXIgYSBub2RlIGNvbnRhaW5pbmcgc3VjaCBhIHJ1bi4gIE5vZGVJdGVyYXRvcnMsIHRoZSBp
bm5lclRleHQgcHJvcGVydHksIGFuZCBob3ZlcmluZyBvdmVyIGEgbGluayBhbGwgdXNlIGl0ZXJh
dGlvbi48L3A+CiA8cD5UaGlzIHRlc3RzIGl0ZXJhdGlvbiB1c2luZyBib3RoIHRoZSBpbm5lclRl
eHQgcHJvcGVydHkgYW5kIE5vZGVJdGVyYXRvcnMuICBJdCBpcyBzdWNjZXNzZnVsIGlmIGl0IGRv
ZXNuJ3QgY3Jhc2ggU2FmYXJpLjwvcD4KIDxocj4KLTxhIGhyZWY9IiMiIGlkPSJub2RlIj5oZWxs
bzwvYT48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzxhIGhyZWY9
IiMiIGlkPSJub2RlIj5oZWxsbzwvYT48L2JvZHk+PC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>